Initial commit
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,861 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXAggregateTarget section */
|
||||
8230C6A110AFBC9100412F24 /* Distribution */ = {
|
||||
isa = PBXAggregateTarget;
|
||||
buildConfigurationList = 8230C6AD10AFBCC700412F24 /* Build configuration list for PBXAggregateTarget "Distribution" */;
|
||||
buildPhases = (
|
||||
8230C6AC10AFBCC700412F24 /* CopyFiles */,
|
||||
8230C6A010AFBC9100412F24 /* ShellScript */,
|
||||
);
|
||||
dependencies = (
|
||||
8230C6A510AFBC9600412F24 /* PBXTargetDependency */,
|
||||
);
|
||||
name = Distribution;
|
||||
productName = Distribution;
|
||||
};
|
||||
82B9195310150EA2007BD6DB /* Build & Install FreeDO */ = {
|
||||
isa = PBXAggregateTarget;
|
||||
buildConfigurationList = 82B9195D10150EA4007BD6DB /* Build configuration list for PBXAggregateTarget "Build & Install FreeDO" */;
|
||||
buildPhases = (
|
||||
82B9195210150EA2007BD6DB /* ShellScript */,
|
||||
);
|
||||
dependencies = (
|
||||
82B9195F10150EB3007BD6DB /* PBXTargetDependency */,
|
||||
);
|
||||
name = "Build & Install FreeDO";
|
||||
productName = "Build & Install";
|
||||
};
|
||||
/* End PBXAggregateTarget section */
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
37E8246E172B7BEB00E58D77 /* OE3DOSystemResponderClient.h in Resources */ = {isa = PBXBuildFile; fileRef = 37E8246D172B7BEB00E58D77 /* OE3DOSystemResponderClient.h */; };
|
||||
575ACC171582D4E200EAC45A /* _3do_sys.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 578D12271582B03E003F64E5 /* _3do_sys.cpp */; };
|
||||
575ACC181582D4E200EAC45A /* arm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 578D12281582B03E003F64E5 /* arm.cpp */; };
|
||||
575ACC191582D4E200EAC45A /* bitop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 578D122A1582B03E003F64E5 /* bitop.cpp */; };
|
||||
575ACC1A1582D4E200EAC45A /* Clio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 578D122C1582B03E003F64E5 /* Clio.cpp */; };
|
||||
575ACC1B1582D4E200EAC45A /* DiagPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 578D122E1582B03E003F64E5 /* DiagPort.cpp */; };
|
||||
575ACC1C1582D4E200EAC45A /* DSP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 578D12301582B03E003F64E5 /* DSP.cpp */; };
|
||||
575ACC1D1582D4E200EAC45A /* Iso.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 578D12341582B03F003F64E5 /* Iso.cpp */; };
|
||||
575ACC1E1582D4E200EAC45A /* Madam.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 578D12371582B03F003F64E5 /* Madam.cpp */; };
|
||||
575ACC1F1582D4E200EAC45A /* quarz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 578D123A1582B03F003F64E5 /* quarz.cpp */; };
|
||||
575ACC201582D4E200EAC45A /* SPORT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 578D123C1582B03F003F64E5 /* SPORT.cpp */; };
|
||||
575ACC211582D4E200EAC45A /* vdlp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 578D123F1582B03F003F64E5 /* vdlp.cpp */; };
|
||||
575ACC221582D4E200EAC45A /* XBUS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 578D12411582B03F003F64E5 /* XBUS.cpp */; };
|
||||
575ACC2D1582D50400EAC45A /* cd.c in Sources */ = {isa = PBXBuildFile; fileRef = 575ACBE81582C37400EAC45A /* cd.c */; };
|
||||
575ACC2E1582D50400EAC45A /* cdtext.c in Sources */ = {isa = PBXBuildFile; fileRef = 575ACBEA1582C37400EAC45A /* cdtext.c */; };
|
||||
575ACC2F1582D50400EAC45A /* cue_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = 575ACBEC1582C37400EAC45A /* cue_parser.c */; };
|
||||
575ACC301582D50400EAC45A /* cue_parser.ym in Sources */ = {isa = PBXBuildFile; fileRef = 575ACBEE1582C37400EAC45A /* cue_parser.ym */; };
|
||||
575ACC311582D50400EAC45A /* cue_scanner.c in Sources */ = {isa = PBXBuildFile; fileRef = 575ACBEF1582C37400EAC45A /* cue_scanner.c */; };
|
||||
575ACC321582D50400EAC45A /* cue_scanner.lm in Sources */ = {isa = PBXBuildFile; fileRef = 575ACBF01582C37400EAC45A /* cue_scanner.lm */; };
|
||||
575ACC331582D50400EAC45A /* rem.c in Sources */ = {isa = PBXBuildFile; fileRef = 575ACBF71582C37400EAC45A /* rem.c */; };
|
||||
575ACC341582D50400EAC45A /* time.c in Sources */ = {isa = PBXBuildFile; fileRef = 575ACBF91582C37400EAC45A /* time.c */; };
|
||||
575ACC391582D51900EAC45A /* liblibcue.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 575ACC271582D4F000EAC45A /* liblibcue.a */; };
|
||||
575ACC3A1582D51900EAC45A /* liblibfreedo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 575ACC131582D4BE00EAC45A /* liblibfreedo.a */; };
|
||||
578D12251582B00B003F64E5 /* freedo.icns in Resources */ = {isa = PBXBuildFile; fileRef = 578D12241582B00B003F64E5 /* freedo.icns */; };
|
||||
57C189551581E581007AC24B /* freedoconfig.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57C189541581E581007AC24B /* freedoconfig.cpp */; };
|
||||
8230C69910AFBC3A00412F24 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = 8230C69810AFBC3A00412F24 /* dsa_pub.pem */; };
|
||||
8230C6AE10AFBCE500412F24 /* config.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8230C6AA10AFBCC700412F24 /* config.yaml */; };
|
||||
826FDE5710142B230023A8E9 /* license.txt in Resources */ = {isa = PBXBuildFile; fileRef = 826FDD6D10142B230023A8E9 /* license.txt */; };
|
||||
8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
|
||||
8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
|
||||
942597C515146FF40074E3A3 /* OpenEmuBase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 942597C415146FF40074E3A3 /* OpenEmuBase.framework */; };
|
||||
94D9257314CA9879008F697D /* FreeDOGameCore.mm in Sources */ = {isa = PBXBuildFile; fileRef = 826FE0F41014D8930023A8E9 /* FreeDOGameCore.mm */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
575ACC351582D51000EAC45A /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 575ACC121582D4BE00EAC45A;
|
||||
remoteInfo = libfreedo;
|
||||
};
|
||||
575ACC371582D51000EAC45A /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 575ACC261582D4F000EAC45A;
|
||||
remoteInfo = libcue;
|
||||
};
|
||||
8230C6A410AFBC9600412F24 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 8D5B49AC048680CD000E48DA;
|
||||
remoteInfo = BSNES;
|
||||
};
|
||||
82B9195E10150EB3007BD6DB /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 8D5B49AC048680CD000E48DA;
|
||||
remoteInfo = BSNES;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
578D12E61582B9A5003F64E5 /* CopyFiles */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 6;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
8230C6AC10AFBCC700412F24 /* CopyFiles */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 16;
|
||||
files = (
|
||||
8230C6AE10AFBCE500412F24 /* config.yaml in CopyFiles */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
089C1672FE841209C02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||
089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
089C167FFE841241C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
||||
1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||
37E8246D172B7BEB00E58D77 /* OE3DOSystemResponderClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OE3DOSystemResponderClient.h; path = ../OpenEmu/3DO/OE3DOSystemResponderClient.h; sourceTree = "<group>"; };
|
||||
575ACBE81582C37400EAC45A /* cd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cd.c; sourceTree = "<group>"; };
|
||||
575ACBE91582C37400EAC45A /* cd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cd.h; sourceTree = "<group>"; };
|
||||
575ACBEA1582C37400EAC45A /* cdtext.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cdtext.c; sourceTree = "<group>"; };
|
||||
575ACBEB1582C37400EAC45A /* cdtext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cdtext.h; sourceTree = "<group>"; };
|
||||
575ACBEC1582C37400EAC45A /* cue_parser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cue_parser.c; sourceTree = "<group>"; };
|
||||
575ACBED1582C37400EAC45A /* cue_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cue_parser.h; sourceTree = "<group>"; };
|
||||
575ACBEE1582C37400EAC45A /* cue_parser.ym */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.yacc; path = cue_parser.ym; sourceTree = "<group>"; };
|
||||
575ACBEF1582C37400EAC45A /* cue_scanner.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cue_scanner.c; sourceTree = "<group>"; };
|
||||
575ACBF01582C37400EAC45A /* cue_scanner.lm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.lex; path = cue_scanner.lm; sourceTree = "<group>"; };
|
||||
575ACBF11582C37400EAC45A /* libcue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libcue.h; sourceTree = "<group>"; };
|
||||
575ACBF71582C37400EAC45A /* rem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rem.c; sourceTree = "<group>"; };
|
||||
575ACBF81582C37400EAC45A /* rem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rem.h; sourceTree = "<group>"; };
|
||||
575ACBF91582C37400EAC45A /* time.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = time.c; sourceTree = "<group>"; };
|
||||
575ACBFA1582C37400EAC45A /* time.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = time.h; sourceTree = "<group>"; };
|
||||
575ACC0E1582C3A100EAC45A /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = config.h; path = "libcue-1.4.0/config.h"; sourceTree = SOURCE_ROOT; };
|
||||
575ACC131582D4BE00EAC45A /* liblibfreedo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = liblibfreedo.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
575ACC271582D4F000EAC45A /* liblibcue.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = liblibcue.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
578D12241582B00B003F64E5 /* freedo.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = freedo.icns; sourceTree = SOURCE_ROOT; };
|
||||
578D12271582B03E003F64E5 /* _3do_sys.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = _3do_sys.cpp; sourceTree = "<group>"; };
|
||||
578D12281582B03E003F64E5 /* arm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = arm.cpp; sourceTree = "<group>"; };
|
||||
578D12291582B03E003F64E5 /* arm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = arm.h; sourceTree = "<group>"; };
|
||||
578D122A1582B03E003F64E5 /* bitop.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bitop.cpp; sourceTree = "<group>"; };
|
||||
578D122B1582B03E003F64E5 /* bitop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bitop.h; sourceTree = "<group>"; };
|
||||
578D122C1582B03E003F64E5 /* Clio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Clio.cpp; sourceTree = "<group>"; };
|
||||
578D122D1582B03E003F64E5 /* Clio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Clio.h; sourceTree = "<group>"; };
|
||||
578D122E1582B03E003F64E5 /* DiagPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DiagPort.cpp; sourceTree = "<group>"; };
|
||||
578D122F1582B03E003F64E5 /* DiagPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiagPort.h; sourceTree = "<group>"; };
|
||||
578D12301582B03E003F64E5 /* DSP.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DSP.cpp; sourceTree = "<group>"; };
|
||||
578D12311582B03E003F64E5 /* DSP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DSP.h; sourceTree = "<group>"; };
|
||||
578D12321582B03E003F64E5 /* freedoconfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = freedoconfig.h; sourceTree = "<group>"; };
|
||||
578D12331582B03F003F64E5 /* freedocore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = freedocore.h; sourceTree = "<group>"; };
|
||||
578D12341582B03F003F64E5 /* Iso.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Iso.cpp; sourceTree = "<group>"; };
|
||||
578D12351582B03F003F64E5 /* IsoXBUS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IsoXBUS.h; sourceTree = "<group>"; };
|
||||
578D12371582B03F003F64E5 /* Madam.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Madam.cpp; sourceTree = "<group>"; };
|
||||
578D12381582B03F003F64E5 /* Madam.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Madam.h; sourceTree = "<group>"; };
|
||||
578D123A1582B03F003F64E5 /* quarz.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = quarz.cpp; sourceTree = "<group>"; };
|
||||
578D123B1582B03F003F64E5 /* quarz.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = quarz.h; sourceTree = "<group>"; };
|
||||
578D123C1582B03F003F64E5 /* SPORT.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SPORT.cpp; sourceTree = "<group>"; };
|
||||
578D123D1582B03F003F64E5 /* SPORT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPORT.h; sourceTree = "<group>"; };
|
||||
578D123E1582B03F003F64E5 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = "<group>"; };
|
||||
578D123F1582B03F003F64E5 /* vdlp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vdlp.cpp; sourceTree = "<group>"; };
|
||||
578D12401582B03F003F64E5 /* vdlp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vdlp.h; sourceTree = "<group>"; };
|
||||
578D12411582B03F003F64E5 /* XBUS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XBUS.cpp; sourceTree = "<group>"; };
|
||||
578D12421582B03F003F64E5 /* XBUS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XBUS.h; sourceTree = "<group>"; };
|
||||
57C189541581E581007AC24B /* freedoconfig.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = freedoconfig.cpp; sourceTree = "<group>"; };
|
||||
8230C69810AFBC3A00412F24 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dsa_pub.pem; sourceTree = "<group>"; };
|
||||
8230C6AA10AFBCC700412F24 /* config.yaml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = config.yaml; sourceTree = "<group>"; };
|
||||
826FDD6D10142B230023A8E9 /* license.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = license.txt; sourceTree = "<group>"; };
|
||||
826FE0F31014D8930023A8E9 /* FreeDOGameCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FreeDOGameCore.h; sourceTree = "<group>"; };
|
||||
826FE0F41014D8930023A8E9 /* FreeDOGameCore.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FreeDOGameCore.mm; sourceTree = "<group>"; };
|
||||
82B91C841015267F007BD6DB /* libco.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libco.a; sourceTree = "<group>"; };
|
||||
8D5B49B6048680CD000E48DA /* FreeDO.oecoreplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FreeDO.oecoreplugin; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
8D5B49B7048680CD000E48DA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
942597C415146FF40074E3A3 /* OpenEmuBase.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenEmuBase.framework; path = ../OpenEmu/build/Release/OpenEmuBase.framework; sourceTree = "<group>"; };
|
||||
D2F7E65807B2D6F200F64583 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
575ACC101582D4BE00EAC45A /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
575ACC241582D4F000EAC45A /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
8D5B49B3048680CD000E48DA /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
575ACC391582D51900EAC45A /* liblibcue.a in Frameworks */,
|
||||
575ACC3A1582D51900EAC45A /* liblibfreedo.a in Frameworks */,
|
||||
942597C515146FF40074E3A3 /* OpenEmuBase.framework in Frameworks */,
|
||||
8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
089C166AFE841209C02AAC07 /* BSNES */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77AFFE84173DC02AAC07 /* Classes */,
|
||||
32C88E010371C26100C91783 /* Other Sources */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* Frameworks and Libraries */,
|
||||
19C28FB8FE9D52D311CA2CBB /* Products */,
|
||||
);
|
||||
name = BSNES;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C1671FE841209C02AAC07 /* Frameworks and Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */,
|
||||
1058C7AEFEA557BF11CA2CBB /* Other Frameworks */,
|
||||
);
|
||||
name = "Frameworks and Libraries";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C167CFE841241C02AAC07 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8230C69810AFBC3A00412F24 /* dsa_pub.pem */,
|
||||
8D5B49B7048680CD000E48DA /* Info.plist */,
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
08FB77AFFE84173DC02AAC07 /* Classes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
575ACBE01582C37400EAC45A /* libcue */,
|
||||
578D12261582B03E003F64E5 /* libfreedo */,
|
||||
826FE0F31014D8930023A8E9 /* FreeDOGameCore.h */,
|
||||
826FE0F41014D8930023A8E9 /* FreeDOGameCore.mm */,
|
||||
57C189541581E581007AC24B /* freedoconfig.cpp */,
|
||||
37E8246D172B7BEB00E58D77 /* OE3DOSystemResponderClient.h */,
|
||||
826FDD6610142B230023A8E9 /* data */,
|
||||
);
|
||||
name = Classes;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
942597C415146FF40074E3A3 /* OpenEmuBase.framework */,
|
||||
82B91C841015267F007BD6DB /* libco.a */,
|
||||
1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */,
|
||||
);
|
||||
name = "Linked Frameworks";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1058C7AEFEA557BF11CA2CBB /* Other Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
089C167FFE841241C02AAC07 /* AppKit.framework */,
|
||||
D2F7E65807B2D6F200F64583 /* CoreData.framework */,
|
||||
089C1672FE841209C02AAC07 /* Foundation.framework */,
|
||||
);
|
||||
name = "Other Frameworks";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB8FE9D52D311CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D5B49B6048680CD000E48DA /* FreeDO.oecoreplugin */,
|
||||
575ACC131582D4BE00EAC45A /* liblibfreedo.a */,
|
||||
575ACC271582D4F000EAC45A /* liblibcue.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
32C88E010371C26100C91783 /* Other Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8230C6AA10AFBCC700412F24 /* config.yaml */,
|
||||
);
|
||||
name = "Other Sources";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
575ACBE01582C37400EAC45A /* libcue */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
575ACC0E1582C3A100EAC45A /* config.h */,
|
||||
575ACBE81582C37400EAC45A /* cd.c */,
|
||||
575ACBE91582C37400EAC45A /* cd.h */,
|
||||
575ACBEA1582C37400EAC45A /* cdtext.c */,
|
||||
575ACBEB1582C37400EAC45A /* cdtext.h */,
|
||||
575ACBEC1582C37400EAC45A /* cue_parser.c */,
|
||||
575ACBED1582C37400EAC45A /* cue_parser.h */,
|
||||
575ACBEE1582C37400EAC45A /* cue_parser.ym */,
|
||||
575ACBEF1582C37400EAC45A /* cue_scanner.c */,
|
||||
575ACBF01582C37400EAC45A /* cue_scanner.lm */,
|
||||
575ACBF11582C37400EAC45A /* libcue.h */,
|
||||
575ACBF71582C37400EAC45A /* rem.c */,
|
||||
575ACBF81582C37400EAC45A /* rem.h */,
|
||||
575ACBF91582C37400EAC45A /* time.c */,
|
||||
575ACBFA1582C37400EAC45A /* time.h */,
|
||||
);
|
||||
name = libcue;
|
||||
path = "libcue-1.4.0/src/libcue";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
578D12261582B03E003F64E5 /* libfreedo */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
578D12271582B03E003F64E5 /* _3do_sys.cpp */,
|
||||
578D12281582B03E003F64E5 /* arm.cpp */,
|
||||
578D12291582B03E003F64E5 /* arm.h */,
|
||||
578D122A1582B03E003F64E5 /* bitop.cpp */,
|
||||
578D122B1582B03E003F64E5 /* bitop.h */,
|
||||
578D122C1582B03E003F64E5 /* Clio.cpp */,
|
||||
578D122D1582B03E003F64E5 /* Clio.h */,
|
||||
578D122E1582B03E003F64E5 /* DiagPort.cpp */,
|
||||
578D122F1582B03E003F64E5 /* DiagPort.h */,
|
||||
578D12301582B03E003F64E5 /* DSP.cpp */,
|
||||
578D12311582B03E003F64E5 /* DSP.h */,
|
||||
578D12321582B03E003F64E5 /* freedoconfig.h */,
|
||||
578D12331582B03F003F64E5 /* freedocore.h */,
|
||||
578D12341582B03F003F64E5 /* Iso.cpp */,
|
||||
578D12351582B03F003F64E5 /* IsoXBUS.h */,
|
||||
578D12371582B03F003F64E5 /* Madam.cpp */,
|
||||
578D12381582B03F003F64E5 /* Madam.h */,
|
||||
578D123A1582B03F003F64E5 /* quarz.cpp */,
|
||||
578D123B1582B03F003F64E5 /* quarz.h */,
|
||||
578D123C1582B03F003F64E5 /* SPORT.cpp */,
|
||||
578D123D1582B03F003F64E5 /* SPORT.h */,
|
||||
578D123E1582B03F003F64E5 /* types.h */,
|
||||
578D123F1582B03F003F64E5 /* vdlp.cpp */,
|
||||
578D12401582B03F003F64E5 /* vdlp.h */,
|
||||
578D12411582B03F003F64E5 /* XBUS.cpp */,
|
||||
578D12421582B03F003F64E5 /* XBUS.h */,
|
||||
);
|
||||
path = libfreedo;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
826FDD6610142B230023A8E9 /* data */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
578D12241582B00B003F64E5 /* freedo.icns */,
|
||||
826FDD6D10142B230023A8E9 /* license.txt */,
|
||||
);
|
||||
path = data;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
575ACC111582D4BE00EAC45A /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
575ACC251582D4F000EAC45A /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
575ACC121582D4BE00EAC45A /* libfreedo */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 575ACC141582D4BE00EAC45A /* Build configuration list for PBXNativeTarget "libfreedo" */;
|
||||
buildPhases = (
|
||||
575ACC0F1582D4BE00EAC45A /* Sources */,
|
||||
575ACC101582D4BE00EAC45A /* Frameworks */,
|
||||
575ACC111582D4BE00EAC45A /* Headers */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = libfreedo;
|
||||
productName = libfreedo;
|
||||
productReference = 575ACC131582D4BE00EAC45A /* liblibfreedo.a */;
|
||||
productType = "com.apple.product-type.library.static";
|
||||
};
|
||||
575ACC261582D4F000EAC45A /* libcue */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 575ACC281582D4F000EAC45A /* Build configuration list for PBXNativeTarget "libcue" */;
|
||||
buildPhases = (
|
||||
575ACC231582D4F000EAC45A /* Sources */,
|
||||
575ACC241582D4F000EAC45A /* Frameworks */,
|
||||
575ACC251582D4F000EAC45A /* Headers */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = libcue;
|
||||
productName = libcue;
|
||||
productReference = 575ACC271582D4F000EAC45A /* liblibcue.a */;
|
||||
productType = "com.apple.product-type.library.static";
|
||||
};
|
||||
8D5B49AC048680CD000E48DA /* FreeDO */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 1DEB913A08733D840010E9CD /* Build configuration list for PBXNativeTarget "FreeDO" */;
|
||||
buildPhases = (
|
||||
8D5B49AF048680CD000E48DA /* Resources */,
|
||||
8D5B49B1048680CD000E48DA /* Sources */,
|
||||
8D5B49B3048680CD000E48DA /* Frameworks */,
|
||||
578D12E61582B9A5003F64E5 /* CopyFiles */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
575ACC361582D51000EAC45A /* PBXTargetDependency */,
|
||||
575ACC381582D51000EAC45A /* PBXTargetDependency */,
|
||||
);
|
||||
name = FreeDO;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = BSNES;
|
||||
productReference = 8D5B49B6048680CD000E48DA /* FreeDO.oecoreplugin */;
|
||||
productType = "com.apple.product-type.bundle";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
BuildIndependentTargetsInParallel = YES;
|
||||
LastUpgradeCheck = 0430;
|
||||
};
|
||||
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "FreeDO" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* BSNES */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D5B49AC048680CD000E48DA /* FreeDO */,
|
||||
82B9195310150EA2007BD6DB /* Build & Install FreeDO */,
|
||||
8230C6A110AFBC9100412F24 /* Distribution */,
|
||||
575ACC121582D4BE00EAC45A /* libfreedo */,
|
||||
575ACC261582D4F000EAC45A /* libcue */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
8D5B49AF048680CD000E48DA /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */,
|
||||
826FDE5710142B230023A8E9 /* license.txt in Resources */,
|
||||
8230C69910AFBC3A00412F24 /* dsa_pub.pem in Resources */,
|
||||
578D12251582B00B003F64E5 /* freedo.icns in Resources */,
|
||||
37E8246E172B7BEB00E58D77 /* OE3DOSystemResponderClient.h in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
8230C6A010AFBC9100412F24 /* ShellScript */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = /usr/bin/openemu_rb_automation.rb;
|
||||
};
|
||||
82B9195210150EA2007BD6DB /* ShellScript */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "mkdir -p \"$USER_LIBRARY_DIR/Application Support/OpenEmu/Cores\"\nrm -rf \"$USER_LIBRARY_DIR/Application Support/OpenEmu/Cores/$PROJECT_NAME.oecoreplugin\"{,.dSYM}\ncp -rf \"$BUILT_PRODUCTS_DIR/$PROJECT_NAME.oecoreplugin\"{,.dSYM} \"$USER_LIBRARY_DIR/Application Support/OpenEmu/Cores/\"\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
575ACC0F1582D4BE00EAC45A /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
575ACC171582D4E200EAC45A /* _3do_sys.cpp in Sources */,
|
||||
575ACC181582D4E200EAC45A /* arm.cpp in Sources */,
|
||||
575ACC191582D4E200EAC45A /* bitop.cpp in Sources */,
|
||||
575ACC1A1582D4E200EAC45A /* Clio.cpp in Sources */,
|
||||
575ACC1B1582D4E200EAC45A /* DiagPort.cpp in Sources */,
|
||||
575ACC1C1582D4E200EAC45A /* DSP.cpp in Sources */,
|
||||
575ACC1D1582D4E200EAC45A /* Iso.cpp in Sources */,
|
||||
575ACC1E1582D4E200EAC45A /* Madam.cpp in Sources */,
|
||||
575ACC1F1582D4E200EAC45A /* quarz.cpp in Sources */,
|
||||
575ACC201582D4E200EAC45A /* SPORT.cpp in Sources */,
|
||||
575ACC211582D4E200EAC45A /* vdlp.cpp in Sources */,
|
||||
575ACC221582D4E200EAC45A /* XBUS.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
575ACC231582D4F000EAC45A /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
575ACC2D1582D50400EAC45A /* cd.c in Sources */,
|
||||
575ACC2E1582D50400EAC45A /* cdtext.c in Sources */,
|
||||
575ACC2F1582D50400EAC45A /* cue_parser.c in Sources */,
|
||||
575ACC301582D50400EAC45A /* cue_parser.ym in Sources */,
|
||||
575ACC311582D50400EAC45A /* cue_scanner.c in Sources */,
|
||||
575ACC321582D50400EAC45A /* cue_scanner.lm in Sources */,
|
||||
575ACC331582D50400EAC45A /* rem.c in Sources */,
|
||||
575ACC341582D50400EAC45A /* time.c in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
8D5B49B1048680CD000E48DA /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
94D9257314CA9879008F697D /* FreeDOGameCore.mm in Sources */,
|
||||
57C189551581E581007AC24B /* freedoconfig.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
575ACC361582D51000EAC45A /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 575ACC121582D4BE00EAC45A /* libfreedo */;
|
||||
targetProxy = 575ACC351582D51000EAC45A /* PBXContainerItemProxy */;
|
||||
};
|
||||
575ACC381582D51000EAC45A /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 575ACC261582D4F000EAC45A /* libcue */;
|
||||
targetProxy = 575ACC371582D51000EAC45A /* PBXContainerItemProxy */;
|
||||
};
|
||||
8230C6A510AFBC9600412F24 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 8D5B49AC048680CD000E48DA /* FreeDO */;
|
||||
targetProxy = 8230C6A410AFBC9600412F24 /* PBXContainerItemProxy */;
|
||||
};
|
||||
82B9195F10150EB3007BD6DB /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 8D5B49AC048680CD000E48DA /* FreeDO */;
|
||||
targetProxy = 82B9195E10150EB3007BD6DB /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
089C167EFE841241C02AAC07 /* English */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
1DEB913B08733D840010E9CD /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"\"$(PROJECT_DIR)/core/lib/\"",
|
||||
"\"$(PROJECT_DIR)/core/\"",
|
||||
"\"$(PROJECT_DIR)/libfreedo\"",
|
||||
"\"$(PROJECT_DIR)/libcue/\"/**",
|
||||
);
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Bundles";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)\"",
|
||||
"\"$(SRCROOT)/libfreedo\"",
|
||||
);
|
||||
OTHER_CFLAGS = (
|
||||
"-I.",
|
||||
"-llibcue",
|
||||
"-DPROFILE_PERFORMANCE",
|
||||
);
|
||||
OTHER_CPLUSPLUSFLAGS = (
|
||||
"$(OTHER_CFLAGS)",
|
||||
"-g",
|
||||
);
|
||||
PRODUCT_NAME = FreeDO;
|
||||
USER_HEADER_SEARCH_PATHS = "\"$(PROJECT_DIR)/core/\" \"$(PROJECT_DIR)/libcue/\"/** \"$(PROJECT_DIR)/libfreedo/\"";
|
||||
WRAPPER_EXTENSION = oecoreplugin;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
1DEB913C08733D840010E9CD /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"\"$(PROJECT_DIR)/core/lib/\"",
|
||||
"\"$(PROJECT_DIR)/core/\"",
|
||||
"\"$(PROJECT_DIR)/libfreedo\"",
|
||||
"\"$(PROJECT_DIR)/libcue/\"/**",
|
||||
);
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Bundles";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)\"",
|
||||
"\"$(SRCROOT)/libfreedo\"",
|
||||
);
|
||||
OTHER_CFLAGS = (
|
||||
"-I.",
|
||||
"-llibcue",
|
||||
"-DPROFILE_PERFORMANCE",
|
||||
);
|
||||
OTHER_CPLUSPLUSFLAGS = (
|
||||
"$(OTHER_CFLAGS)",
|
||||
"-g",
|
||||
);
|
||||
PRODUCT_NAME = FreeDO;
|
||||
USER_HEADER_SEARCH_PATHS = "\"$(PROJECT_DIR)/core/\" \"$(PROJECT_DIR)/libcue/\"/** \"$(PROJECT_DIR)/libfreedo/\"";
|
||||
WRAPPER_EXTENSION = oecoreplugin;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
1DEB913F08733D840010E9CD /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
GCC_INCREASE_PRECOMPILED_HEADER_SHARING = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
|
||||
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
SDKROOT = macosx;
|
||||
VALID_ARCHS = x86_64;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
1DEB914008733D840010E9CD /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
GCC_INCREASE_PRECOMPILED_HEADER_SHARING = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 3;
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
|
||||
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
SDKROOT = macosx;
|
||||
VALID_ARCHS = x86_64;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
575ACC151582D4BE00EAC45A /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = NO;
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
575ACC161582D4BE00EAC45A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = YES;
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
575ACC291582D4F000EAC45A /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = NO;
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
575ACC2A1582D4F000EAC45A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = YES;
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
8230C6A210AFBC9100412F24 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
PRODUCT_NAME = Distribution;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
8230C6A310AFBC9100412F24 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
PRODUCT_NAME = Distribution;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
82B9195410150EA2007BD6DB /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
PRODUCT_NAME = "Build & Install";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
82B9195510150EA2007BD6DB /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
PRODUCT_NAME = "Build & Install";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
1DEB913A08733D840010E9CD /* Build configuration list for PBXNativeTarget "FreeDO" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
1DEB913B08733D840010E9CD /* Debug */,
|
||||
1DEB913C08733D840010E9CD /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "FreeDO" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
1DEB913F08733D840010E9CD /* Debug */,
|
||||
1DEB914008733D840010E9CD /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
575ACC141582D4BE00EAC45A /* Build configuration list for PBXNativeTarget "libfreedo" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
575ACC151582D4BE00EAC45A /* Debug */,
|
||||
575ACC161582D4BE00EAC45A /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
575ACC281582D4F000EAC45A /* Build configuration list for PBXNativeTarget "libcue" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
575ACC291582D4F000EAC45A /* Debug */,
|
||||
575ACC2A1582D4F000EAC45A /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
8230C6AD10AFBCC700412F24 /* Build configuration list for PBXAggregateTarget "Distribution" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
8230C6A210AFBC9100412F24 /* Debug */,
|
||||
8230C6A310AFBC9100412F24 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
82B9195D10150EA4007BD6DB /* Build configuration list for PBXAggregateTarget "Build & Install FreeDO" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
82B9195410150EA2007BD6DB /* Debug */,
|
||||
82B9195510150EA2007BD6DB /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0500"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "82B9195310150EA2007BD6DB"
|
||||
BuildableName = "Build & Install FreeDO"
|
||||
BlueprintName = "Build & Install FreeDO"
|
||||
ReferencedContainer = "container:FreeDO.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>Build & Install FreeDO.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>3</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>575ACC121582D4BE00EAC45A</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>575ACC261582D4F000EAC45A</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>8230C6A110AFBC9100412F24</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>82B9195310150EA2007BD6DB</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>8D5B49AC048680CD000E48DA</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0500"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "82B9195310150EA2007BD6DB"
|
||||
BuildableName = "Build & Install FreeDO"
|
||||
BlueprintName = "Build & Install FreeDO"
|
||||
ReferencedContainer = "container:FreeDO.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>Build & Install FreeDO.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>3</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>575ACC121582D4BE00EAC45A</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>575ACC261582D4F000EAC45A</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>8230C6A110AFBC9100412F24</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>82B9195310150EA2007BD6DB</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>8D5B49AC048680CD000E48DA</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>575ACC121582D4BE00EAC45A</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>575ACC261582D4F000EAC45A</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>8230C6A110AFBC9100412F24</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>82B9195310150EA2007BD6DB</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>8D5B49AC048680CD000E48DA</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,161 @@
|
||||
/*
|
||||
Copyright (c) 2009, OpenEmu Team
|
||||
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the OpenEmu Team nor the
|
||||
names of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY OpenEmu Team ''AS IS'' AND ANY
|
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL OpenEmu Team BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <OpenEmuBase/OEGameCore.h>
|
||||
|
||||
@class OERingBuffer;
|
||||
|
||||
#define SCREEN_WIDTH 640
|
||||
#define SCREEN_HEIGHT 480
|
||||
|
||||
|
||||
struct VolumeHeader // 132 bytes
|
||||
{
|
||||
Byte recordType; // 1 byte
|
||||
Byte syncBytes[5]; // 5 bytes
|
||||
Byte recordVersion; // 1 byte
|
||||
Byte flags; // 1 byte
|
||||
Byte comment[32]; // 32 bytes
|
||||
Byte label[32]; // 32 bytes
|
||||
UInt32 id; // 4 bytes
|
||||
UInt32 blockSize; // 4 bytes
|
||||
UInt32 blockCount; // 4 bytes
|
||||
UInt32 rootDirId; // 4 bytes
|
||||
UInt32 rootDirBlocks; // 4 bytes
|
||||
UInt32 rootDirBlockSize; // 4 bytes
|
||||
UInt32 lastRootDirCopy; // 4 bytes
|
||||
UInt32 rootDirCopies[8]; // 32 bytes
|
||||
};
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
InterfaceFunction_FDP_FREEDOCORE_VERSION = 0,
|
||||
InterfaceFunction_FDP_INIT = 1, //set ext_interface
|
||||
InterfaceFunction_FDP_DESTROY = 2,
|
||||
InterfaceFunction_FDP_DO_EXECFRAME = 3, //execute 1/60 of second
|
||||
InterfaceFunction_FDP_DO_FRAME_MT = 4, //multitasking
|
||||
InterfaceFunction_FDP_DO_EXECFRAME_MT = 5, //multitasking
|
||||
InterfaceFunction_FDP_DO_LOAD = 6, //load state from buffer, returns !NULL if everything went smooth
|
||||
InterfaceFunction_FDP_GET_SAVE_SIZE = 7, //return size of savestatemachine
|
||||
InterfaceFunction_FDP_DO_SAVE = 8, //save state to buffer
|
||||
InterfaceFunction_FDP_GETP_NVRAM = 9, //returns ptr to NVRAM 32K
|
||||
InterfaceFunction_FDP_GETP_RAMS = 10, //returns ptr to RAM 3M
|
||||
InterfaceFunction_FDP_GETP_ROMS = 11, //returns ptr to ROM 2M
|
||||
InterfaceFunction_FDP_GETP_PROFILE = 12, //returns profile pointer, sizeof = 3M/4
|
||||
InterfaceFunction_FDP_BUGTEMPORALFIX = 13, // JMK NOTE: Unused?
|
||||
InterfaceFunction_FDP_SET_ARMCLOCK = 14,
|
||||
InterfaceFunction_FDP_SET_TEXQUALITY = 15,
|
||||
InterfaceFunction_FDP_GETP_WRCOUNT = 16, // JMK NOTE: Unused?
|
||||
InterfaceFunction_FDP_SET_FIX_MODE = 17,
|
||||
InterfaceFunction_FDP_GET_FRAME_BITMAP = 18
|
||||
} InterfaceFunction;
|
||||
|
||||
enum
|
||||
{
|
||||
ExternalFunction_EXT_READ_ROMS = 1,
|
||||
ExternalFunction_EXT_READ_NVRAM = 2,
|
||||
ExternalFunction_EXT_WRITE_NVRAM = 3,
|
||||
ExternalFunction_EXT_SWAPFRAME = 5, //frame swap (in mutlithreaded) or frame draw(single treaded)
|
||||
ExternalFunction_EXT_PUSH_SAMPLE = 6, //sends sample to the buffer
|
||||
ExternalFunction_EXT_GET_PBUSLEN = 7,
|
||||
ExternalFunction_EXT_GETP_PBUSDATA = 8,
|
||||
ExternalFunction_EXT_KPRINT = 9,
|
||||
ExternalFunction_EXT_DEBUG_PRINT = 10,
|
||||
ExternalFunction_EXT_FRAMETRIGGER_MT = 12, //multitasking
|
||||
ExternalFunction_EXT_READ2048 = 14, //for XBUS Plugin
|
||||
ExternalFunction_EXT_GET_DISC_SIZE = 15,
|
||||
ExternalFunction_EXT_ON_SECTOR = 16,
|
||||
ExternalFunction_EXT_ARM_SYNC = 17,
|
||||
ExternalFunction_FDP_GET_FRAME_BITMAP = 18
|
||||
} ExternalFunction;
|
||||
|
||||
enum {
|
||||
PhysicalParameters_ROM1_SIZE = 1 * 1024 * 1024,
|
||||
PhysicalParameters_ROM2_SIZE = 933636, //was 1 * 1024 * 1024,
|
||||
PhysicalParameters_NVRAM_SIZE = 32 * 1024,
|
||||
PhysicalParameters_PBUS_DATA_MAX_SIZE = 20,
|
||||
|
||||
PhysicalParameters_TARGET_FRAMES_PER_SECOND = 60,
|
||||
} PhysicalParameters;
|
||||
|
||||
enum {
|
||||
/* PbusButtonAddress_L = 0x0400,
|
||||
PbusButtonAddress_R = 0x0800,
|
||||
PbusButtonAddress_X = 0x1000,
|
||||
PbusButtonAddress_P = 0x2000,
|
||||
PbusButtonAddress_C = 0x4000,
|
||||
PbusButtonAddress_B = 0x8000,
|
||||
PbusButtonAddress_A = 0x0001,
|
||||
PbusButtonAddress_Left = 0x0002,
|
||||
PbusButtonAddress_Right = 0x0004,
|
||||
PbusButtonAddress_Up = 0x0008,
|
||||
PbusButtonAddress_Down = 0x0010,
|
||||
|
||||
*/PbusButtonAddress_L = 0x800,
|
||||
PbusButtonAddress_R = 0x1000,
|
||||
PbusButtonAddress_X = 0x200,
|
||||
PbusButtonAddress_P = 0x400,
|
||||
PbusButtonAddress_C = 0x4,
|
||||
PbusButtonAddress_B = 0x8,
|
||||
PbusButtonAddress_A = 0x10,
|
||||
PbusButtonAddress_Left = 0x20,
|
||||
PbusButtonAddress_Right = 0x100,
|
||||
PbusButtonAddress_Up = 0x80,
|
||||
PbusButtonAddress_Down = 0x40,
|
||||
} PbusButtonsAddresses;
|
||||
|
||||
|
||||
|
||||
unsigned char nvramhead[]=
|
||||
{
|
||||
0x01,0x5a,0x5a,0x5a,0x5a,0x5a,0x02,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0x6e,0x76,0x72,0x61,0x6d,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0xff,0xff,0xff,0xff,0,0,0,1,
|
||||
0,0,0x80,0,0xff,0xff,0xff,0xfe,0,0,0,0,0,0,0,1,
|
||||
0,0,0,0,0,0,0,0x84,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0x85,0x5a,2,0xb6,0,0,0,0x98,0,0,0,0x98,
|
||||
0,0,0,0x14,0,0,0,0x14,0x7A,0xa5,0x65,0xbd,0,0,0,0x84,
|
||||
0,0,0,0x84,0,0,0x76,0x68,0,0,0,0x14
|
||||
};
|
||||
|
||||
OE_EXPORTED_CLASS
|
||||
@interface FreeDOGameCore : OEGameCore
|
||||
{
|
||||
@public
|
||||
char *videoBuffer;
|
||||
int videoWidth, videoHeight;
|
||||
NSString *romName;
|
||||
double sampleRate;
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,708 @@
|
||||
/*
|
||||
Copyright (c) 2009, OpenEmu Team
|
||||
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the OpenEmu Team nor the
|
||||
names of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY OpenEmu Team ''AS IS'' AND ANY
|
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL OpenEmu Team BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#import "FreeDOGameCore.h"
|
||||
#import <OpenEmuBase/OERingBuffer.h>
|
||||
#import "OE3DOSystemResponderClient.h"
|
||||
#import <OpenGL/gl.h>
|
||||
|
||||
#include "freedocore.h"
|
||||
#include "libcue.h"
|
||||
#include "cd.h"
|
||||
|
||||
#define TEMP_BUFFER_SIZE 5512
|
||||
|
||||
@interface FreeDOGameCore () <OE3DOSystemResponderClient>
|
||||
|
||||
- (void)fdcCallbackKPrint:(void *)pv;
|
||||
- (void)fdcCallbackReadROM:(void *)pv;
|
||||
- (void)fdcCallbackReadNVRAM:(void *)pv;
|
||||
- (void)fdcCallbackWriteNVRAM:(void *)pv;
|
||||
- (void *)fdcCallbackSwapFrame:(void *)pv;
|
||||
- (void)fdcCallbackFrameTrigger;
|
||||
- (void)fdcCallbackRead2048:(void *)pv;
|
||||
- (void)fdcCallbackArmSync:(intptr_t)t;
|
||||
- (intptr_t)fdcCallbackGetDiscSize;
|
||||
- (void)fdcCallbackOnSector:(intptr_t)t;
|
||||
- (intptr_t)fdcCallbackGetPbusLength;
|
||||
- (void *)fdcCallbackGetPbus;
|
||||
- (void)fdcCallbackPushSample:(uintptr_t)t;
|
||||
|
||||
@end
|
||||
|
||||
FreeDOGameCore *current;
|
||||
|
||||
@implementation FreeDOGameCore
|
||||
{
|
||||
Byte* biosRom1Copy;
|
||||
Byte* biosRom2Copy;
|
||||
volatile unsigned int pbus[5];
|
||||
void *nvramCopy;
|
||||
VDLFrame *frame;
|
||||
|
||||
NSFileHandle *isoStream;
|
||||
TrackMode isoMode;
|
||||
int sectorCount;
|
||||
int currentSector;
|
||||
BOOL isSwapFrameSignaled;
|
||||
NSMutableString* kprintBuffer;
|
||||
|
||||
int fver1,fver2;
|
||||
|
||||
uintptr_t sampleBuffer[TEMP_BUFFER_SIZE];
|
||||
uint sampleCurrent;
|
||||
|
||||
unsigned char FIXED_CLUTR[32];
|
||||
unsigned char FIXED_CLUTG[32];
|
||||
unsigned char FIXED_CLUTB[32];
|
||||
}
|
||||
|
||||
static void* fdcCallback(int procedure, void* data)
|
||||
{
|
||||
switch(procedure)
|
||||
{
|
||||
case ExternalFunction_EXT_KPRINT:
|
||||
[current fdcCallbackKPrint:data];
|
||||
break;
|
||||
case ExternalFunction_EXT_READ_ROMS:
|
||||
[current fdcCallbackReadROM:data];
|
||||
break;
|
||||
case ExternalFunction_EXT_READ_NVRAM:
|
||||
[current fdcCallbackReadNVRAM:data];
|
||||
break;
|
||||
case ExternalFunction_EXT_WRITE_NVRAM:
|
||||
[current fdcCallbackWriteNVRAM:data];
|
||||
break;
|
||||
case ExternalFunction_EXT_SWAPFRAME:
|
||||
return [current fdcCallbackSwapFrame:data];
|
||||
case ExternalFunction_EXT_PUSH_SAMPLE:
|
||||
[current fdcCallbackPushSample:(uintptr_t)data];
|
||||
break;
|
||||
case ExternalFunction_EXT_GET_PBUSLEN:
|
||||
return (void*)[current fdcCallbackGetPbusLength];
|
||||
case ExternalFunction_EXT_GETP_PBUSDATA:
|
||||
return [current fdcCallbackGetPbus];
|
||||
case ExternalFunction_EXT_FRAMETRIGGER_MT:
|
||||
[current fdcCallbackFrameTrigger];
|
||||
break;
|
||||
case ExternalFunction_EXT_READ2048:
|
||||
[current fdcCallbackRead2048:data];
|
||||
break;
|
||||
case ExternalFunction_EXT_GET_DISC_SIZE:
|
||||
return (void *)[current fdcCallbackGetDiscSize];
|
||||
case ExternalFunction_EXT_ON_SECTOR:
|
||||
[current fdcCallbackOnSector:(intptr_t)data];
|
||||
break;
|
||||
case ExternalFunction_EXT_ARM_SYNC:
|
||||
[current fdcCallbackArmSync:(intptr_t)data];
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return (void*)0;
|
||||
}
|
||||
|
||||
unsigned int _setBitTo(unsigned int storage, BOOL set, unsigned int bitmask)
|
||||
{
|
||||
if(set)
|
||||
return storage|bitmask;
|
||||
else
|
||||
return storage;
|
||||
}
|
||||
|
||||
- (oneway void)button:(OE3DOButton)button forPlayer:(NSUInteger)player pushed:(BOOL) pushed
|
||||
{
|
||||
int i;
|
||||
|
||||
for(i=0;i<1;i++)
|
||||
{
|
||||
unsigned int joybin=0x8000;
|
||||
if(i==player-1)
|
||||
{
|
||||
switch(button)
|
||||
{
|
||||
case OE3DOButtonA:
|
||||
joybin = _setBitTo(joybin, pushed, PbusButtonAddress_A);
|
||||
break;
|
||||
case OE3DOButtonB:
|
||||
joybin = _setBitTo(joybin, pushed, OE3DOButtonB);
|
||||
break;
|
||||
case OE3DOButtonC:
|
||||
joybin = _setBitTo(joybin, pushed, OE3DOButtonC);
|
||||
break;
|
||||
case OE3DOButtonX:
|
||||
joybin = _setBitTo(joybin, pushed, OE3DOButtonX);
|
||||
break;
|
||||
case OE3DOButtonP:
|
||||
joybin = _setBitTo(joybin, pushed, OE3DOButtonP);
|
||||
break;
|
||||
case OE3DOButtonLeft:
|
||||
joybin = _setBitTo(joybin, pushed, OE3DOButtonLeft);
|
||||
break;
|
||||
case OE3DOButtonRight:
|
||||
joybin = _setBitTo(joybin, pushed, OE3DOButtonRight);
|
||||
break;
|
||||
case OE3DOButtonUp:
|
||||
joybin = _setBitTo(joybin, pushed, OE3DOButtonUp);
|
||||
break;
|
||||
case OE3DOButtonDown:
|
||||
joybin = _setBitTo(joybin, pushed, OE3DOButtonDown);
|
||||
break;
|
||||
case OE3DOButtonL:
|
||||
joybin = _setBitTo(joybin, pushed, OE3DOButtonL);
|
||||
break;
|
||||
case OE3DOButtonR:
|
||||
joybin = _setBitTo(joybin, pushed, OE3DOButtonR);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(i&1)
|
||||
pbus[i>>1]=(pbus[i>>1]&0xffff0000)|joybin;
|
||||
else
|
||||
pbus[i>>1]=(pbus[i>>1]&0xffff)|(joybin<<16);
|
||||
}
|
||||
for(;i<10;i++)
|
||||
{
|
||||
if(i&1)
|
||||
pbus[i>>1]=(pbus[i>>1]&0xffff0000)|0xffff;
|
||||
else
|
||||
pbus[i>>1]=(pbus[i>>1]&0xffff)|(0xffff<<16);
|
||||
}
|
||||
}
|
||||
|
||||
- (oneway void)didRelease3DOButton:(OE3DOButton)button forPlayer:(NSUInteger)player
|
||||
{
|
||||
[self button:button forPlayer:player pushed:NO];
|
||||
}
|
||||
|
||||
- (oneway void)didPush3DOButton:(OE3DOButton)button forPlayer:(NSUInteger)player
|
||||
{
|
||||
[self button:button forPlayer:player pushed:YES];
|
||||
}
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if(self != nil)
|
||||
{
|
||||
for(int j = 0; j < 32; j++)
|
||||
{
|
||||
FIXED_CLUTR[j] = (unsigned char)(((j & 0x1f) << 3) | ((j >> 2) & 7));
|
||||
FIXED_CLUTG[j] = FIXED_CLUTR[j];
|
||||
FIXED_CLUTB[j] = FIXED_CLUTR[j];
|
||||
}
|
||||
}
|
||||
current = self;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark Exectuion
|
||||
|
||||
- (void)executeFrame
|
||||
{
|
||||
[self executeFrameSkippingFrame:NO];
|
||||
}
|
||||
|
||||
- (void)executeFrameSkippingFrame: (BOOL) skip
|
||||
{
|
||||
[self fdcDoExecuteFrame:frame];
|
||||
}
|
||||
|
||||
- (void) readSector:(uint) sectorNumber toBuffer:(uint8_t*) buffer
|
||||
{
|
||||
if(isoMode==MODE_MODE1_RAW)
|
||||
{
|
||||
[isoStream seekToFileOffset:2352 * sectorNumber + 0x10];
|
||||
}
|
||||
else
|
||||
{
|
||||
[isoStream seekToFileOffset:2048 * sectorNumber];
|
||||
}
|
||||
NSData *data = [isoStream readDataOfLength:2048];
|
||||
memcpy(buffer, [data bytes], 2048);
|
||||
}
|
||||
|
||||
- (BOOL)loadFileAtPath:(NSString *)path error:(NSError **)error
|
||||
{
|
||||
NSString* isoPath;
|
||||
NSError* errorCue;
|
||||
|
||||
currentSector = 0;
|
||||
sampleCurrent = 0;
|
||||
memset(sampleBuffer, 0, sizeof(uintptr_t)*TEMP_BUFFER_SIZE);
|
||||
|
||||
NSString* cue = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&errorCue];
|
||||
|
||||
const char* cueCString = [cue UTF8String];
|
||||
Cd* cd = cue_parse_string(cueCString);
|
||||
NSLog(@"CUE file found and parsed");
|
||||
if (cd_get_ntrack(cd)!=1)
|
||||
{
|
||||
NSLog(@"Cue file found, but the number of tracks within was not 1.");
|
||||
return NO;
|
||||
}
|
||||
|
||||
Track* track = cd_get_track(cd, 1);
|
||||
isoMode = (TrackMode)track_get_mode(track);
|
||||
|
||||
if ((isoMode!=MODE_MODE1&&isoMode!=MODE_MODE1_RAW))
|
||||
{
|
||||
NSLog(@"Cue file found, but the track within was not in the right format (should be BINARY and Mode1+2048 or Mode1+2352)");
|
||||
return NO;
|
||||
}
|
||||
|
||||
NSString *isoTrack = [NSString stringWithUTF8String:track_get_filename(track)];
|
||||
isoPath = [path stringByReplacingOccurrencesOfString:[path lastPathComponent] withString:isoTrack];
|
||||
|
||||
isoStream = [NSFileHandle fileHandleForReadingAtPath:isoPath];
|
||||
|
||||
uint8_t sectorZero[2048];
|
||||
[self readSector:0 toBuffer:sectorZero];
|
||||
VolumeHeader* header = (VolumeHeader*)sectorZero;
|
||||
sectorCount = (int)reverseBytes(header->blockCount);
|
||||
NSLog(@"Sector count is %d", sectorCount);
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
#pragma mark Video
|
||||
- (const void *)videoBuffer
|
||||
{
|
||||
if(isSwapFrameSignaled)
|
||||
{
|
||||
if(fver2==fver1)
|
||||
{
|
||||
isSwapFrameSignaled = NO;
|
||||
[self frame:frame toVideoBuffer:(Byte*)videoBuffer];
|
||||
fver1++;
|
||||
}
|
||||
}
|
||||
fver2=fver1;
|
||||
return videoBuffer;
|
||||
}
|
||||
|
||||
- (OEIntRect)screenRect
|
||||
{
|
||||
// hope this handles hires :/
|
||||
OEIntRect rect = OEIntRectMake(0,0,SCREEN_WIDTH, SCREEN_HEIGHT);
|
||||
return rect;
|
||||
//return OEIntRectMake(0, 0, frame->srcw*2, frame->srch*2);
|
||||
}
|
||||
|
||||
- (OEIntSize)bufferSize
|
||||
{
|
||||
return OEIntSizeMake(SCREEN_WIDTH, SCREEN_HEIGHT);
|
||||
}
|
||||
|
||||
|
||||
- (void)setupEmulation
|
||||
{
|
||||
[self loadBIOSes];
|
||||
[self initPBusAndNVRAM];
|
||||
[self initKPrintBuffer];
|
||||
[self initVideo];
|
||||
|
||||
currentSector = 0;
|
||||
sampleCurrent = 0;
|
||||
memset(sampleBuffer, 0, sizeof(uintptr_t)*TEMP_BUFFER_SIZE);
|
||||
}
|
||||
|
||||
|
||||
- (void)resetEmulation
|
||||
{
|
||||
// [super resetEmulation];
|
||||
}
|
||||
|
||||
|
||||
- (void) startEmulation
|
||||
{
|
||||
NSLog(@"FreeDO version: %d",[self fdcGetCoreVersion]);
|
||||
[self fdcInitialize];
|
||||
[super startEmulation];
|
||||
}
|
||||
|
||||
- (void)stopEmulation
|
||||
{
|
||||
[self fdcDestroy];
|
||||
[super stopEmulation];
|
||||
}
|
||||
|
||||
- (GLenum)pixelFormat
|
||||
{
|
||||
return GL_BGR;
|
||||
}
|
||||
|
||||
- (GLenum)pixelType
|
||||
{
|
||||
return GL_UNSIGNED_BYTE;
|
||||
}
|
||||
|
||||
- (GLenum)internalPixelFormat
|
||||
{
|
||||
return GL_RGB;
|
||||
}
|
||||
|
||||
- (NSTimeInterval)frameInterval
|
||||
{
|
||||
return frameInterval ? frameInterval : 60;
|
||||
}
|
||||
|
||||
- (double)audioSampleRate
|
||||
{
|
||||
return sampleRate ? sampleRate : 44100;
|
||||
}
|
||||
|
||||
- (NSUInteger)soundBufferSize
|
||||
{
|
||||
return TEMP_BUFFER_SIZE;
|
||||
}
|
||||
|
||||
- (NSUInteger)channelCount
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
|
||||
- (NSUInteger)audioBitDepth
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
- (BOOL)saveStateToFileAtPath:(NSString *)fileName
|
||||
{
|
||||
size_t size = [self fdcGetSaveSize];
|
||||
void *data = malloc(sizeof(uintptr_t)*size);
|
||||
[self fdcDoSave:data];
|
||||
NSData *saveData = [NSData dataWithBytesNoCopy:data length:size freeWhenDone:YES];
|
||||
NSLog(@"Game saved, length in bytes: %lu", saveData.length);
|
||||
return [saveData writeToFile:fileName atomically:NO];
|
||||
}
|
||||
|
||||
- (BOOL)loadStateFromFileAtPath:(NSString *)fileName
|
||||
{
|
||||
NSData *saveData = [NSData dataWithContentsOfFile:fileName];
|
||||
size_t size = sizeof(uintptr_t)*saveData.length;
|
||||
void* loadBuffer = malloc(size);
|
||||
[saveData getBytes:loadBuffer];
|
||||
return [self fdcDoLoad:loadBuffer];
|
||||
}
|
||||
|
||||
#pragma mark - FreeDoInterface
|
||||
|
||||
-(void*) _freedoActionWithInterfaceFunction:(InterfaceFunction) interfaceFunction datum:(void*) datum
|
||||
{
|
||||
return _freedo_Interface(interfaceFunction, datum);
|
||||
}
|
||||
|
||||
-(int) fdcGetCoreVersion
|
||||
{
|
||||
return (uintptr_t)[self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_FREEDOCORE_VERSION datum:(void*)0];
|
||||
}
|
||||
|
||||
-(int) fdcGetSaveSize
|
||||
{
|
||||
return (uintptr_t)[self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_GET_SAVE_SIZE datum:(void*)0];
|
||||
}
|
||||
|
||||
-(void*) fdcGetPointerNVRAM
|
||||
{
|
||||
return [self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_GETP_NVRAM datum:(void*)0];
|
||||
}
|
||||
|
||||
-(void*) fdcGetPointerRAM
|
||||
{
|
||||
return [self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_GETP_RAMS datum:(void*)0];
|
||||
}
|
||||
|
||||
-(void*) fdcGetPointerROM
|
||||
{
|
||||
return [self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_GETP_ROMS datum:(void*)0];
|
||||
}
|
||||
|
||||
-(void*) fdcGetPointerProfile
|
||||
{
|
||||
return [self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_GETP_PROFILE datum:(void*)0];
|
||||
}
|
||||
|
||||
-(int) fdcInitialize
|
||||
{
|
||||
return (intptr_t)[self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_INIT datum:(void*)*fdcCallback];
|
||||
}
|
||||
|
||||
-(void) fdcDestroy
|
||||
{
|
||||
[self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_DESTROY datum:(void*)0];
|
||||
}
|
||||
|
||||
-(void) fdcDoExecuteFrame:(void*)vdlFrame
|
||||
{
|
||||
[self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_DO_EXECFRAME datum:vdlFrame];
|
||||
}
|
||||
|
||||
-(void) fdcDoExecuteFrameMultitask:(void*)vdlFrame
|
||||
{
|
||||
[self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_DO_EXECFRAME_MT datum:vdlFrame];
|
||||
}
|
||||
|
||||
-(void) fdcDoFrameMultitask:(void*)vdlFrame
|
||||
{
|
||||
[self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_DO_FRAME_MT datum:vdlFrame];
|
||||
}
|
||||
|
||||
-(BOOL) fdcDoLoad:(void*)buffer
|
||||
{
|
||||
return [self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_DO_LOAD datum:buffer]!=0;
|
||||
}
|
||||
|
||||
-(void) fdcDoSave:(void*)buffer
|
||||
{
|
||||
[self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_DO_SAVE datum:buffer];
|
||||
}
|
||||
|
||||
-(void*) fdcSetArmClock:(int)clock
|
||||
{
|
||||
//untested!
|
||||
return [self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_SET_ARMCLOCK datum:(void*) clock];
|
||||
}
|
||||
|
||||
-(void*) fdcSetFixMode:(int)fixMode
|
||||
{
|
||||
return [self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_SET_FIX_MODE datum:(void*) fixMode];
|
||||
}
|
||||
|
||||
-(void*) fdcSetTextureQuality:(int)textureQuality
|
||||
{
|
||||
return [self _freedoActionWithInterfaceFunction:InterfaceFunction_FDP_SET_TEXQUALITY datum:(void*) textureQuality];
|
||||
}
|
||||
|
||||
- (void)fdcCallbackKPrint:(void *)pv
|
||||
{
|
||||
NSString* currentChar = [NSString stringWithFormat:@"%c", pv];
|
||||
if ([currentChar isEqualToString:@"\n"])
|
||||
{
|
||||
NSLog(@"KPRINT: %@", kprintBuffer);
|
||||
kprintBuffer = [NSMutableString string];
|
||||
}
|
||||
else
|
||||
{
|
||||
[kprintBuffer appendString:currentChar];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)fdcCallbackReadROM:(void *)pv
|
||||
{
|
||||
//NSLog(@"fdcCallbackReadROM");
|
||||
memcpy(pv, biosRom1Copy, PhysicalParameters_ROM1_SIZE);
|
||||
void *biosRom2Dest = (void*)((intptr_t)pv+PhysicalParameters_ROM2_SIZE);
|
||||
memcpy(biosRom2Dest, biosRom2Copy, PhysicalParameters_ROM2_SIZE);
|
||||
}
|
||||
|
||||
- (void)fdcCallbackReadNVRAM:(void *)buffer
|
||||
{
|
||||
//NSLog(@"fdcCallbackReadNVRAM");
|
||||
memcpy(buffer, nvramCopy, PhysicalParameters_NVRAM_SIZE);
|
||||
}
|
||||
|
||||
- (void)fdcCallbackWriteNVRAM:(void *)pv
|
||||
{
|
||||
//NSLog(@"fdcCallbackWriteNVRAM");
|
||||
}
|
||||
|
||||
- (void *)fdcCallbackSwapFrame:(void *)pv
|
||||
{
|
||||
isSwapFrameSignaled = YES;
|
||||
return frame;
|
||||
}
|
||||
|
||||
- (void)fdcCallbackFrameTrigger
|
||||
{
|
||||
//NSLog(@"fdcCallbackFrameTrigger");
|
||||
isSwapFrameSignaled = YES;
|
||||
[self fdcDoFrameMultitask:frame];
|
||||
}
|
||||
|
||||
- (void)fdcCallbackRead2048:(void *)buffer
|
||||
{
|
||||
//NSLog(@"fdcCallbackRead2048");
|
||||
[self readSector:currentSector toBuffer:(uint8_t*)buffer];
|
||||
}
|
||||
|
||||
- (void)fdcCallbackArmSync:(intptr_t)t
|
||||
{
|
||||
NSLog(@"fdcCallbackArmSync");
|
||||
}
|
||||
|
||||
- (intptr_t)fdcCallbackGetDiscSize
|
||||
{
|
||||
//NSLog(@"fdcCallbackGetDiscSize");
|
||||
return sectorCount;
|
||||
}
|
||||
|
||||
- (void)fdcCallbackOnSector:(intptr_t)sector
|
||||
{
|
||||
//NSLog(@"fdcCallbackOnSector");
|
||||
currentSector = sector;
|
||||
}
|
||||
|
||||
- (intptr_t)fdcCallbackGetPbusLength
|
||||
{
|
||||
return PhysicalParameters_PBUS_DATA_MAX_SIZE;
|
||||
}
|
||||
|
||||
- (void *)fdcCallbackGetPbus
|
||||
{
|
||||
int i;
|
||||
for(i = 0; i < PhysicalParameters_PBUS_DATA_MAX_SIZE; i++)
|
||||
{
|
||||
if (i > 0)
|
||||
printf(":");
|
||||
|
||||
printf("%02X", pbus[i]);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
return (void*)pbus;
|
||||
}
|
||||
|
||||
//FIXME: Audio need some work
|
||||
- (void)fdcCallbackPushSample:(uintptr_t)sample
|
||||
{
|
||||
//NSLog(@"fdcCallbackPushSample");
|
||||
sampleBuffer[sampleCurrent] = sample;
|
||||
sampleCurrent ++;
|
||||
if(sampleCurrent>TEMP_BUFFER_SIZE)
|
||||
{
|
||||
sampleCurrent = 0;
|
||||
[[self ringBufferAtIndex:0] write:sampleBuffer maxLength:sizeof(uintptr_t)*TEMP_BUFFER_SIZE];
|
||||
memset(sampleBuffer, 0, sizeof(uintptr_t)*TEMP_BUFFER_SIZE);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Helpers
|
||||
|
||||
- (void) initVideo
|
||||
{
|
||||
if(videoBuffer)
|
||||
free(videoBuffer);
|
||||
|
||||
videoBuffer = (char*)malloc(SCREEN_WIDTH * SCREEN_HEIGHT * 4);
|
||||
frame = new VDLFrame;
|
||||
fver2=fver1=0;
|
||||
}
|
||||
|
||||
-(void) initKPrintBuffer
|
||||
{
|
||||
kprintBuffer = [NSMutableString string];
|
||||
}
|
||||
|
||||
- (void)initPBusAndNVRAM
|
||||
{
|
||||
memset((void*)pbus,0xff,PhysicalParameters_PBUS_DATA_MAX_SIZE);
|
||||
nvramCopy = malloc(65536/2);
|
||||
memset(nvramCopy,0,65536/2);
|
||||
memcpy(nvramCopy,nvramhead,sizeof(nvramhead));
|
||||
frame = (VDLFrame*)malloc(sizeof(VDLFrame));
|
||||
memset(frame, 0, sizeof(VDLFrame));
|
||||
}
|
||||
|
||||
-(void) loadBIOSes
|
||||
{
|
||||
NSString *rom1Path = [[self biosDirectoryPath] stringByAppendingPathComponent:@"panafz10.bin"];
|
||||
NSData *data = [NSData dataWithContentsOfFile:rom1Path];
|
||||
NSUInteger len = [data length];
|
||||
assert(len==PhysicalParameters_ROM1_SIZE);
|
||||
biosRom1Copy = (Byte*)malloc(len);
|
||||
memcpy(biosRom1Copy, [data bytes], len);
|
||||
|
||||
// "ROM 2 Japanese Character ROM" / Set it if we find it. It's not requiered for soem JAP games. We still have to init the memory tho
|
||||
NSString *rom2Path = [[self biosDirectoryPath] stringByAppendingPathComponent:@"rom2.rom"];
|
||||
data = [NSData dataWithContentsOfFile:rom2Path];
|
||||
if(data)
|
||||
{
|
||||
len = [data length];
|
||||
assert(len==PhysicalParameters_ROM2_SIZE);
|
||||
biosRom2Copy = (Byte*)malloc(len);
|
||||
memcpy(biosRom2Copy, [data bytes], len);
|
||||
}
|
||||
else
|
||||
{
|
||||
biosRom2Copy = (Byte*)malloc(PhysicalParameters_ROM2_SIZE);
|
||||
memset(biosRom2Copy,0,len);
|
||||
}
|
||||
}
|
||||
|
||||
static uint32_t reverseBytes(uint32_t value)
|
||||
{
|
||||
return (value & 0x000000FFU) << 24 | (value & 0x0000FF00U) << 8 | (value & 0x00FF0000U) >> 8 | (value & 0xFF000000U) >> 24;
|
||||
}
|
||||
|
||||
-(void) frame:(VDLFrame*) framePtr toVideoBuffer:(Byte*) destPtr
|
||||
{
|
||||
int copyHeight = framePtr->srch*2;
|
||||
int copyWidth = framePtr->srcw*2;
|
||||
for(int line = 0; line < copyHeight; line++)
|
||||
{
|
||||
VDLLine* linePtr = &framePtr->lines[line];
|
||||
short* srcPtr = (short*)linePtr;
|
||||
bool allowFixedClut = (linePtr->xOUTCONTROLL & 0x2000000) > 0;
|
||||
for(int pix = 0; pix < copyWidth; pix++)
|
||||
{
|
||||
Byte bPart = 0;
|
||||
Byte gPart = 0;
|
||||
Byte rPart = 0;
|
||||
if(*srcPtr == 0)
|
||||
{
|
||||
bPart = (Byte)(linePtr->xBACKGROUND & 0x1F);
|
||||
gPart = (Byte)((linePtr->xBACKGROUND >> 5) & 0x1F);
|
||||
rPart = (Byte)((linePtr->xBACKGROUND >> 10) & 0x1F);
|
||||
}
|
||||
else if(allowFixedClut && (*srcPtr & 0x8000) > 0)
|
||||
{
|
||||
bPart = FIXED_CLUTB[(*srcPtr) & 0x1F];
|
||||
gPart = FIXED_CLUTG[((*srcPtr) >> 5) & 0x1F];
|
||||
rPart = FIXED_CLUTR[(*srcPtr) >> 10 & 0x1F];
|
||||
}
|
||||
else
|
||||
{
|
||||
bPart = (Byte)(linePtr->xCLUTB[(*srcPtr) & 0x1F]);
|
||||
gPart = linePtr->xCLUTG[((*srcPtr) >> 5) & 0x1F];
|
||||
rPart = linePtr->xCLUTR[(*srcPtr) >> 10 & 0x1F];
|
||||
}
|
||||
*destPtr++ = bPart;
|
||||
*destPtr++ = gPart;
|
||||
*destPtr++ = rPart;
|
||||
|
||||
srcPtr++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>freedo</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.openemu.${PRODUCT_NAME:identifier}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0.085</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>OEGameCoreController</string>
|
||||
<key>OEGameCoreClass</key>
|
||||
<string>FreeDOGameCore</string>
|
||||
<key>OEGameCorePlayerCount</key>
|
||||
<string>8</string>
|
||||
<key>OEProjectURL</key>
|
||||
<string>http://code.google.com/p/freedo/</string>
|
||||
<key>OESystemIdentifiers</key>
|
||||
<array>
|
||||
<string>openemu.system.3do</string>
|
||||
</array>
|
||||
<key>SUEnableAutomaticChecks</key>
|
||||
<string>1</string>
|
||||
<key>SUFeedURL</key>
|
||||
<string>http://openemu.org/updater/freedo_appcast.xml</string>
|
||||
<key>SUPublicDSAKeyFile</key>
|
||||
<string>dsa_pub.pem</string>
|
||||
<key>OEGameCoreRequiresFiles</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,4 +1,4 @@
|
||||
4DO-Core
|
||||
========
|
||||
|
||||
OpenEmu Core plugin with 4DO to support 3DO emulation
|
||||
OpenEmu Core plugin with 4DO/libfreedo to support 3DO emulation
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
build_now: 'YES'
|
||||
create_core_path: 'YES'
|
||||
download_base_url: http://github.com/downloads/openemu/openemu/
|
||||
release_notes_base_url: http://openemu.org/category/releasenotes/bsnes/
|
||||
appcast_basefolder: '/Users/jweinberg/Desktop/Appcast'
|
||||
appcast_xml_name: 'bsnes_appcast.xml'
|
||||
keychain_privkey_name: 'Sparkle Private Key'
|
||||
css_file_name: 'rnotes.css'
|
||||
bundle_extension: 'oecoreplugin'
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 673 B |
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
Executable
+20
@@ -0,0 +1,20 @@
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MIIDOjCCAi0GByqGSM44BAEwggIgAoIBAQD/nSuLzikeU6MrymSPr34AiU2RDJz6
|
||||
0pm/3PPs27f6QTtbUAvGC13q6XWrE3HJU8Gz7RM0EJZGpiwb86LgqOJhjfQ7WKse
|
||||
uaGdbHnvJEFsGqpKX7rnUWaWO3HAsKzDx4HzJqKupFEbTbzXl/GT3JMm+a3PXA3S
|
||||
kyATydRPrX583Ih8iHO1zQs1pwp2AnUvaQXvp4QOLFWheH5napkDZBjc9B7H38dg
|
||||
f4c0QqEXJw0lJbG26FxhpOWMiXwpWpOHSfb+XtmzpeTDIHxKPLMEdf2wc+xNC/M9
|
||||
GdVBfM7+hCEhl1JGqNWPpT7ZzciX8Cxg+5/MIfx+BQ7xQ4wo1SN7y1bZAhUAuBcT
|
||||
+ZsHbLXlR3uGHLIMg8boUKcCggEAGKgD56/tB6siFr5zEY+RTozPLmbBEcvhz5/p
|
||||
hAQo7z7ODimZAA1MN1J7Hv7o1S5D9dpZuOnGhiXaN3Z50WdePb9LVH7twrB8v3Xn
|
||||
ZOEHpumYNcYhvXrIx8LbhnMZmU27xSnrOQF9UfokRxGnXkNmlIwjT0NWqZCqQZwM
|
||||
wVj1Bgld3YV7CpGTF3aGM6a0pk9LBB71PoczXAx0Cum87ouXXy3c8F/82RF9tgXE
|
||||
ZBQ+7K2QXYPv9smbYDB+ZlsQ4VTOi3AReG5AeHTVWha3uaSFxY5vKpfau31iMRuT
|
||||
b1VQ2HVynBpemwhAw4FFvj5dm94aN0Rrvq9BKM09DL4zoOlLogOCAQUAAoIBAE8B
|
||||
I8z38GdbtswSoSV5JZ9z9cBMj/7x/sHi5ED9v1M8MD6AcxJSbo2cbK98xA3A9U22
|
||||
6XFHthGReVLa0dyN3Ov+GhBdf8b4CBuebAAS4z8du2EvUFtwDUHorLIo2Qtq2SYR
|
||||
wpznpB9+3g+z+8GZbzZkdm2mFBKa6GItj82qfEHwxB40aEBx7uQXzM3TH0rV8sMq
|
||||
u91aAVUQuoiG2/IYWc5O34kKMlHUTt6+uuJiSG0ax8ysWE5XltCfSh/VJcGrzKU6
|
||||
ZjGBzh8j5+KSXgoe9TuKlsnN5HDCZKaFTCvrxq889HJj0/ks4UrIF+meEyJvDt4P
|
||||
O4HHoKRtUdLEBMcY0JA=
|
||||
-----END PUBLIC KEY-----
|
||||
BIN
Binary file not shown.
@@ -0,0 +1,12 @@
|
||||
//
|
||||
// freedoconfig.c
|
||||
// FreeDO
|
||||
//
|
||||
// Created by Sergey Klimov on 6/8/12.
|
||||
// Copyright (c) 2012 Self-Employed. All rights reserved.
|
||||
//
|
||||
|
||||
#include "freedoconfig.h"
|
||||
|
||||
bool __temporalfixes = false;
|
||||
int HightResMode = 1;
|
||||
@@ -0,0 +1,12 @@
|
||||
Current Developers
|
||||
------------------
|
||||
Jochen Keil <jrkay@users.sourceforge.net>
|
||||
|
||||
Avuton Olrich
|
||||
He helped a lot to make compilation on win32 work (it still would break
|
||||
without him). Finding the parallel build bug is also accredited to him.
|
||||
Thanks!
|
||||
|
||||
Former Developers
|
||||
-----------------
|
||||
Svend Sorensen <sorensen@users.berlios.de>
|
||||
@@ -0,0 +1,693 @@
|
||||
== IMPORTANT ==
|
||||
|
||||
There are two licences involved in this software.
|
||||
|
||||
The whole libcue project is released under GPLv2 due to its heritage
|
||||
from cuetools. Some code was added independently from cuetools. These
|
||||
files have a copyright notice and licensing information on their own.
|
||||
|
||||
All files that contain this note:
|
||||
'Copyright (c) 2004, 2005, 2006, 2007, Svend Sorensen'
|
||||
are taken from cuetools and are therefore under licence of GPLv2.
|
||||
|
||||
== IMPORTANT ==
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
@@ -0,0 +1,68 @@
|
||||
* force make to *not* build things in parallel since this tends to mess things up
|
||||
|
||||
* update changelog
|
||||
|
||||
* set version number to 1.4.0 (libtool)
|
||||
|
||||
* update copyright
|
||||
|
||||
* fix compiler warning: input() defined but not used
|
||||
|
||||
* new flex behaviour: explicitly enable yylineno usage
|
||||
|
||||
* new automake macro name
|
||||
|
||||
* possible fix for compilation problems on win32
|
||||
|
||||
* update COPYING and corrected copyright notices in several source code files
|
||||
|
||||
* Update general COPYRIGHT notice as well as several file specific notifications
|
||||
|
||||
* update ChangeLog and NEWS
|
||||
|
||||
---------------------------------------
|
||||
|
||||
* set version number to 1.3.0 (libtool)
|
||||
|
||||
* fix for invalid pointer
|
||||
|
||||
---------------------------------------
|
||||
|
||||
* set version number to 1.2.0 (libtool)
|
||||
|
||||
* update comment on libtool versioning
|
||||
|
||||
* update copyright notifications
|
||||
|
||||
* switch copyright licence to 2-clause BSD
|
||||
|
||||
* update AUTHORS to reflect recent changes
|
||||
|
||||
* dump old README
|
||||
|
||||
* simple test program (not yet supported by autotools, needs flac lib
|
||||
|
||||
* autoheader/config.h support for parser buffer size
|
||||
|
||||
* update autotool build system
|
||||
|
||||
* update main interface/api file
|
||||
|
||||
* support for custom cue values hidden as rem comments
|
||||
|
||||
* add buffer size to config.h
|
||||
|
||||
* prevent the parser from memory leaking/replace strdup() with
|
||||
fixed-size array and strncpy/implement yacc|bison macros for buffer
|
||||
creation/deletion
|
||||
|
||||
* prevent the lexer from memory leaking/replace strdup() with
|
||||
fixed-size array and strncpy
|
||||
|
||||
* cd_delete() and track_delete() methods
|
||||
|
||||
* support for cdtext filename
|
||||
|
||||
* major code clean up
|
||||
|
||||
* initial clean up for libcue
|
||||
@@ -0,0 +1,651 @@
|
||||
# Makefile.in generated by automake 1.10.1 from Makefile.am.
|
||||
# Makefile. Generated from Makefile.in by configure.
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
|
||||
pkgdatadir = $(datadir)/libcue
|
||||
pkglibdir = $(libdir)/libcue
|
||||
pkgincludedir = $(includedir)/libcue
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = i686-apple-darwin11.4.0
|
||||
host_triplet = i686-apple-darwin11.4.0
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||
$(top_srcdir)/configure AUTHORS COPYING ChangeLog NEWS \
|
||||
config/config.guess config/config.sub config/depcomp \
|
||||
config/install-sh config/ltmain.sh config/missing \
|
||||
config/ylwrap
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-dvi-recursive install-exec-recursive \
|
||||
install-html-recursive install-info-recursive \
|
||||
install-pdf-recursive install-ps-recursive install-recursive \
|
||||
installcheck-recursive installdirs-recursive pdf-recursive \
|
||||
ps-recursive uninstall-recursive
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d $(distdir) \
|
||||
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr $(distdir); }; }
|
||||
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = ${SHELL} /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/config/missing --run aclocal-1.10
|
||||
AMTAR = ${SHELL} /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/config/missing --run tar
|
||||
AR = ar
|
||||
AUTOCONF = ${SHELL} /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/config/missing --run autoconf
|
||||
AUTOHEADER = ${SHELL} /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/config/missing --run autoheader
|
||||
AUTOMAKE = ${SHELL} /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/config/missing --run automake-1.10
|
||||
AWK = awk
|
||||
CC = gcc -std=gnu99
|
||||
CCDEPMODE = depmode=gcc3
|
||||
CFLAGS = -g -O2
|
||||
CPP = gcc -E
|
||||
CPPFLAGS =
|
||||
CYGPATH_W = echo
|
||||
DEFS = -DHAVE_CONFIG_H
|
||||
DEPDIR = .deps
|
||||
DSYMUTIL = dsymutil
|
||||
DUMPBIN =
|
||||
ECHO_C = \c
|
||||
ECHO_N =
|
||||
ECHO_T =
|
||||
EGREP = /usr/bin/grep -E
|
||||
EXEEXT =
|
||||
FGREP = /usr/bin/grep -F
|
||||
GREP = /usr/bin/grep
|
||||
INSTALL = /usr/bin/install -c
|
||||
INSTALL_DATA = ${INSTALL} -m 644
|
||||
INSTALL_PROGRAM = ${INSTALL}
|
||||
INSTALL_SCRIPT = ${INSTALL}
|
||||
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
|
||||
LD = /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld
|
||||
LDFLAGS =
|
||||
LEX = flex
|
||||
LEXLIB = -lfl
|
||||
LEX_OUTPUT_ROOT = lex.yy
|
||||
LIBCUE_API_VERSION = 1.4
|
||||
LIBCUE_LIBRARY_NAME = libcue
|
||||
LIBCUE_LIBTOOL_VERSION = 1:4:0
|
||||
LIBCUE_MAJOR_VERSION = 1
|
||||
LIBCUE_MICRO_VERSION = 0
|
||||
LIBCUE_MINOR_VERSION = 4
|
||||
LIBOBJS =
|
||||
LIBS =
|
||||
LIBTOOL = $(SHELL) $(top_builddir)/libtool
|
||||
LIPO = lipo
|
||||
LN_S = ln -s
|
||||
LTLIBOBJS =
|
||||
MAKEINFO = ${SHELL} /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/config/missing --run makeinfo
|
||||
MKDIR_P = config/install-sh -c -d
|
||||
NM = /usr/bin/nm
|
||||
NMEDIT = nmedit
|
||||
OBJDUMP = false
|
||||
OBJEXT = o
|
||||
OTOOL = otool
|
||||
OTOOL64 = :
|
||||
PACKAGE = libcue
|
||||
PACKAGE_BUGREPORT = jochen.keil@gmail.com
|
||||
PACKAGE_NAME = libcue
|
||||
PACKAGE_STRING = libcue 1.4.0
|
||||
PACKAGE_TARNAME = libcue
|
||||
PACKAGE_VERSION = 1.4.0
|
||||
PATH_SEPARATOR = :
|
||||
RANLIB = ranlib
|
||||
SED = /usr/bin/sed
|
||||
SET_MAKE =
|
||||
SHELL = /bin/sh
|
||||
STRIP = strip
|
||||
VERSION = 1.4.0
|
||||
YACC = bison -y
|
||||
YFLAGS =
|
||||
abs_builddir = /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0
|
||||
abs_srcdir = /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0
|
||||
abs_top_builddir = /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0
|
||||
abs_top_srcdir = /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0
|
||||
ac_ct_CC = gcc
|
||||
ac_ct_DUMPBIN =
|
||||
am__include = include
|
||||
am__leading_dot = .
|
||||
am__quote =
|
||||
am__tar = ${AMTAR} chof - "$$tardir"
|
||||
am__untar = ${AMTAR} xf -
|
||||
bindir = ${exec_prefix}/bin
|
||||
build = i686-apple-darwin11.4.0
|
||||
build_alias =
|
||||
build_cpu = i686
|
||||
build_os = darwin11.4.0
|
||||
build_vendor = apple
|
||||
builddir = .
|
||||
datadir = ${datarootdir}
|
||||
datarootdir = ${prefix}/share
|
||||
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
|
||||
dvidir = ${docdir}
|
||||
exec_prefix = ${prefix}
|
||||
host = i686-apple-darwin11.4.0
|
||||
host_alias =
|
||||
host_cpu = i686
|
||||
host_os = darwin11.4.0
|
||||
host_vendor = apple
|
||||
htmldir = ${docdir}
|
||||
includedir = ${prefix}/include
|
||||
infodir = ${datarootdir}/info
|
||||
install_sh = $(SHELL) /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/config/install-sh
|
||||
libdir = ${exec_prefix}/lib
|
||||
libexecdir = ${exec_prefix}/libexec
|
||||
localedir = ${datarootdir}/locale
|
||||
localstatedir = ${prefix}/var
|
||||
lt_ECHO = /bin/echo
|
||||
mandir = ${datarootdir}/man
|
||||
mkdir_p = $(top_builddir)/config/install-sh -c -d
|
||||
oldincludedir = /usr/include
|
||||
pdfdir = ${docdir}
|
||||
prefix = /usr/local
|
||||
program_transform_name = s,x,x,
|
||||
psdir = ${docdir}
|
||||
sbindir = ${exec_prefix}/sbin
|
||||
sharedstatedir = ${prefix}/com
|
||||
srcdir = .
|
||||
sysconfdir = ${prefix}/etc
|
||||
target_alias =
|
||||
top_build_prefix =
|
||||
top_builddir = .
|
||||
top_srcdir = .
|
||||
ACLOCAL_AMFLAGS = -I config
|
||||
MAKEFLAGS = -j1
|
||||
AUTOMAKE_OPTIONS = foreign 1.10 dist-bzip2
|
||||
SUBDIRS = src/libcue
|
||||
EXTRA_DIST = autogen.sh
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
am--refresh:
|
||||
@:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
|
||||
cd $(srcdir) && $(AUTOMAKE) --foreign \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
echo ' $(SHELL) ./config.status'; \
|
||||
$(SHELL) ./config.status;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
|
||||
config.h: stamp-h1
|
||||
@if test ! -f $@; then \
|
||||
rm -f stamp-h1; \
|
||||
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
|
||||
else :; fi
|
||||
|
||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||
$(srcdir)/config.h.in: $(am__configure_deps)
|
||||
cd $(top_srcdir) && $(AUTOHEADER)
|
||||
rm -f stamp-h1
|
||||
touch $@
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h stamp-h1
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
test -d $(distdir) || mkdir $(distdir)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r $(distdir)
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-lzma: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.lzma*) \
|
||||
unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& cd $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||
distuninstallcheck \
|
||||
&& chmod -R a-w "$$dc_install_base" \
|
||||
&& ({ \
|
||||
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||
&& rm -rf $(DIST_ARCHIVES) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||
$(am__remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||
distuninstallcheck:
|
||||
@cd $(distuninstallcheck_dir) \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
echo " (check DESTDIR support)"; \
|
||||
fi ; \
|
||||
$(distuninstallcheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
distcleancheck: distclean
|
||||
@if test '$(srcdir)' = . ; then \
|
||||
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||
$(distcleancheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-hdr \
|
||||
distclean-libtool distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
|
||||
install-strip
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am am--refresh check check-am clean clean-generic \
|
||||
clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
|
||||
dist-gzip dist-lzma dist-shar dist-tarZ dist-zip distcheck \
|
||||
distclean distclean-generic distclean-hdr distclean-libtool \
|
||||
distclean-tags distcleancheck distdir distuninstallcheck dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-dvi install-dvi-am \
|
||||
install-exec install-exec-am install-html install-html-am \
|
||||
install-info install-info-am install-man install-pdf \
|
||||
install-pdf-am install-ps install-ps-am install-strip \
|
||||
installcheck installcheck-am installdirs installdirs-am \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags tags-recursive uninstall uninstall-am
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
@@ -0,0 +1,9 @@
|
||||
ACLOCAL_AMFLAGS = -I config
|
||||
|
||||
MAKEFLAGS = -j1
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign 1.10 dist-bzip2
|
||||
|
||||
SUBDIRS = src/libcue
|
||||
|
||||
EXTRA_DIST = autogen.sh
|
||||
@@ -0,0 +1,651 @@
|
||||
# Makefile.in generated by automake 1.10.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||
$(top_srcdir)/configure AUTHORS COPYING ChangeLog NEWS \
|
||||
config/config.guess config/config.sub config/depcomp \
|
||||
config/install-sh config/ltmain.sh config/missing \
|
||||
config/ylwrap
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-dvi-recursive install-exec-recursive \
|
||||
install-html-recursive install-info-recursive \
|
||||
install-pdf-recursive install-ps-recursive install-recursive \
|
||||
installcheck-recursive installdirs-recursive pdf-recursive \
|
||||
ps-recursive uninstall-recursive
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d $(distdir) \
|
||||
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr $(distdir); }; }
|
||||
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LEX = @LEX@
|
||||
LEXLIB = @LEXLIB@
|
||||
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
|
||||
LIBCUE_API_VERSION = @LIBCUE_API_VERSION@
|
||||
LIBCUE_LIBRARY_NAME = @LIBCUE_LIBRARY_NAME@
|
||||
LIBCUE_LIBTOOL_VERSION = @LIBCUE_LIBTOOL_VERSION@
|
||||
LIBCUE_MAJOR_VERSION = @LIBCUE_MAJOR_VERSION@
|
||||
LIBCUE_MICRO_VERSION = @LIBCUE_MICRO_VERSION@
|
||||
LIBCUE_MINOR_VERSION = @LIBCUE_MINOR_VERSION@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
YACC = @YACC@
|
||||
YFLAGS = @YFLAGS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
ACLOCAL_AMFLAGS = -I config
|
||||
MAKEFLAGS = -j1
|
||||
AUTOMAKE_OPTIONS = foreign 1.10 dist-bzip2
|
||||
SUBDIRS = src/libcue
|
||||
EXTRA_DIST = autogen.sh
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
am--refresh:
|
||||
@:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
|
||||
cd $(srcdir) && $(AUTOMAKE) --foreign \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
echo ' $(SHELL) ./config.status'; \
|
||||
$(SHELL) ./config.status;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
|
||||
config.h: stamp-h1
|
||||
@if test ! -f $@; then \
|
||||
rm -f stamp-h1; \
|
||||
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
|
||||
else :; fi
|
||||
|
||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||
$(srcdir)/config.h.in: $(am__configure_deps)
|
||||
cd $(top_srcdir) && $(AUTOHEADER)
|
||||
rm -f stamp-h1
|
||||
touch $@
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h stamp-h1
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
test -d $(distdir) || mkdir $(distdir)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r $(distdir)
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-lzma: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.lzma*) \
|
||||
unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& cd $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||
distuninstallcheck \
|
||||
&& chmod -R a-w "$$dc_install_base" \
|
||||
&& ({ \
|
||||
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||
&& rm -rf $(DIST_ARCHIVES) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||
$(am__remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||
distuninstallcheck:
|
||||
@cd $(distuninstallcheck_dir) \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
echo " (check DESTDIR support)"; \
|
||||
fi ; \
|
||||
$(distuninstallcheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
distcleancheck: distclean
|
||||
@if test '$(srcdir)' = . ; then \
|
||||
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||
$(distcleancheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-hdr \
|
||||
distclean-libtool distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
|
||||
install-strip
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am am--refresh check check-am clean clean-generic \
|
||||
clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
|
||||
dist-gzip dist-lzma dist-shar dist-tarZ dist-zip distcheck \
|
||||
distclean distclean-generic distclean-hdr distclean-libtool \
|
||||
distclean-tags distcleancheck distdir distuninstallcheck dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-dvi install-dvi-am \
|
||||
install-exec install-exec-am install-html install-html-am \
|
||||
install-info install-info-am install-man install-pdf \
|
||||
install-pdf-am install-ps install-ps-am install-strip \
|
||||
installcheck installcheck-am installdirs installdirs-am \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags tags-recursive uninstall uninstall-am
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
@@ -0,0 +1,112 @@
|
||||
Changes since 1.3.0
|
||||
|
||||
* force make to *not* build things in parallel since this tends to mess things up
|
||||
|
||||
* update changelog
|
||||
|
||||
* set version number to 1.4.0 (libtool)
|
||||
|
||||
* update copyright
|
||||
|
||||
* fix compiler warning: input() defined but not used
|
||||
|
||||
* new flex behaviour: explicitly enable yylineno usage
|
||||
|
||||
* new automake macro name
|
||||
|
||||
* possible fix for compilation problems on win32
|
||||
|
||||
* update COPYING and corrected copyright notices in several source code files
|
||||
|
||||
* Update general COPYRIGHT notice as well as several file specific notifications
|
||||
|
||||
* update ChangeLog and NEWS
|
||||
|
||||
Changes since 1.2.0
|
||||
|
||||
* fix for invalid pointer
|
||||
|
||||
Changes from cuetools svn (>1.3.1) to libcue 1.2.0
|
||||
|
||||
* Update copyright notifications
|
||||
|
||||
* Switch copyright licence to 2-clause BSD
|
||||
|
||||
* Update AUTHORS to reflect recent changes
|
||||
|
||||
* Update autotool build system
|
||||
|
||||
* Update main interface/api file
|
||||
|
||||
* API for parsing non standard values in REM comments
|
||||
|
||||
* Fix the lexer and parser memory leak
|
||||
|
||||
* Methods for freeing allocated Cd and Track objects
|
||||
|
||||
* Support for cdtext filename
|
||||
|
||||
* Major code clean up
|
||||
|
||||
* Initial clean up for libcue
|
||||
|
||||
Changes since 1.3
|
||||
|
||||
* Applied most of Branden Robinson's Debian patch
|
||||
(cuetools_1.3-2.diff.gz). This included many fixes and enhancements
|
||||
to tools and manual pages. cuebreakpoints and cueconvert will exit if
|
||||
they fail on any of the input files. cuebreakpoints, cueconvert, and
|
||||
cuetools will exit with a nonzero return value if there was a failure
|
||||
on an input file.
|
||||
|
||||
* Added version option to all tools.
|
||||
|
||||
* Single quoted string support has been removed. This was broken, and I am not
|
||||
sure of any software that supports single quoted strings in cue or toc files.
|
||||
|
||||
Changes since 1.2
|
||||
|
||||
* Build system has been rewritten using automake/autoconf.
|
||||
|
||||
* Added append, prepend, and split pregap modes to cuebreakpoints.
|
||||
|
||||
* Fixed possible compilation error with Bison.
|
||||
|
||||
* All tools accept long options.
|
||||
|
||||
* Programs exit if --input-format or --output-format is an illegal value.
|
||||
|
||||
Changes since 1.1
|
||||
|
||||
* cuebreakpoints was not printing the last track breakpoint. This has been
|
||||
fixed.
|
||||
|
||||
* cueprint now prints a zero-length string for undefined values. Flags, width,
|
||||
and precision are applied to conversion characters which have no conversion.
|
||||
|
||||
* Added a tagging script, cuetag.sh, which uses cueprint, vorbiscomment, and
|
||||
mp3info to tag Ogg Vorbis and MP3 files. This needs more testing and
|
||||
documentation.
|
||||
|
||||
* Added a track selection flag to cueprint.
|
||||
|
||||
Changes since 1.0
|
||||
|
||||
* File formats documentation has been readded and updated (docs/formats.txt).
|
||||
|
||||
* ``CDTEXTFILE`` is now a recognized (but ignored) keyword.
|
||||
|
||||
* If only a disc or track template is specified on the command line, then only
|
||||
the disc or track information is printed, respectively.
|
||||
|
||||
* cueprint now supports flags and width and precision values for template
|
||||
expansion (like the printf command).
|
||||
|
||||
Changes since 0.6
|
||||
|
||||
* cuetools-1.x is a significant code rewrite of 0.x. The cue/toc parsing code
|
||||
has been reimplemented in lex/yacc.
|
||||
|
||||
* cuerename has been replaced by the more general utility cueprint.
|
||||
|
||||
* Usage syntax of the utilities has changed. See the respective man pages.
|
||||
Vendored
+8847
File diff suppressed because it is too large
Load Diff
Executable
+19
@@ -0,0 +1,19 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo "aclocal.."
|
||||
aclocal --force || exit 1
|
||||
echo "libtoolize.."
|
||||
libtoolize --force || exit 1
|
||||
echo "autoheader.."
|
||||
autoheader --force || exit 1
|
||||
if [ -f config.h.in~ ]; then
|
||||
rm config.h.in~
|
||||
fi
|
||||
echo "automake.."
|
||||
automake --force --add-missing || exit 1
|
||||
echo "autoconf.."
|
||||
autoconf --force || exit 1
|
||||
|
||||
if [ -f configure ]; then
|
||||
./configure $*
|
||||
fi
|
||||
@@ -0,0 +1,79 @@
|
||||
/* config.h. Generated from config.h.in by configure. */
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#define HAVE_DLFCN_H 1
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <libintl.h,> header file. */
|
||||
/* #undef HAVE_LIBINTL_H_ */
|
||||
|
||||
/* Define to 1 if you have the <malloc.c,> header file. */
|
||||
/* #undef HAVE_MALLOC_C_ */
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the <stddef.h> header file. */
|
||||
#define HAVE_STDDEF_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#define HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
#define LT_OBJDIR ".libs/"
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "libcue"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT "jochen.keil@gmail.com"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "libcue"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "libcue 1.4.0"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "libcue"
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "1.4.0"
|
||||
|
||||
/* Size of parser buffer */
|
||||
#define PARSER_BUFFER 1024
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "1.4.0"
|
||||
|
||||
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
|
||||
`char[]'. */
|
||||
#define YYTEXT_POINTER 1
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
||||
@@ -0,0 +1,78 @@
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the <libintl.h,> header file. */
|
||||
#undef HAVE_LIBINTL_H_
|
||||
|
||||
/* Define to 1 if you have the <malloc.c,> header file. */
|
||||
#undef HAVE_MALLOC_C_
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the <stddef.h> header file. */
|
||||
#undef HAVE_STDDEF_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
#undef LT_OBJDIR
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Size of parser buffer */
|
||||
#undef PARSER_BUFFER
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
|
||||
`char[]'. */
|
||||
#undef YYTEXT_POINTER
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
||||
File diff suppressed because it is too large
Load Diff
Executable
+2040
File diff suppressed because it is too large
Load Diff
+1407
File diff suppressed because it is too large
Load Diff
+1504
File diff suppressed because it is too large
Load Diff
Executable
+589
@@ -0,0 +1,589 @@
|
||||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2007-03-29.01
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software
|
||||
# Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||
as side-effects.
|
||||
|
||||
Environment variables:
|
||||
depmode Dependency tracking mode.
|
||||
source Source file read by `PROGRAMS ARGS'.
|
||||
object Object file output by `PROGRAMS ARGS'.
|
||||
DEPDIR directory where to store dependencies.
|
||||
depfile Dependency file to output.
|
||||
tmpdepfile Temporary file to use when outputing dependencies.
|
||||
libtool Whether libtool is used (yes/no).
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "depcomp $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||
depfile=${depfile-`echo "$object" |
|
||||
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||
|
||||
rm -f "$tmpdepfile"
|
||||
|
||||
# Some modes work just like other modes, but use different flags. We
|
||||
# parameterize here, but still list the modes in the big case below,
|
||||
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||
# here, because this file can only contain one case statement.
|
||||
if test "$depmode" = hp; then
|
||||
# HP compiler uses -M and no extra arg.
|
||||
gccflag=-M
|
||||
depmode=gcc
|
||||
fi
|
||||
|
||||
if test "$depmode" = dashXmstdout; then
|
||||
# This is just like dashmstdout with a different argument.
|
||||
dashmflag=-xM
|
||||
depmode=dashmstdout
|
||||
fi
|
||||
|
||||
case "$depmode" in
|
||||
gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||
## the command line argument order; so add the flags where they
|
||||
## appear in depend2.am. Note that the slowdown incurred here
|
||||
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||
*) set fnord "$@" "$arg" ;;
|
||||
esac
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
done
|
||||
"$@"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
mv "$tmpdepfile" "$depfile"
|
||||
;;
|
||||
|
||||
gcc)
|
||||
## There are various ways to get dependency output from gcc. Here's
|
||||
## why we pick this rather obscure method:
|
||||
## - Don't want to use -MD because we'd like the dependencies to end
|
||||
## up in a subdir. Having to rename by hand is ugly.
|
||||
## (We might end up doing this anyway to support other compilers.)
|
||||
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||
## -MM, not -M (despite what the docs say).
|
||||
## - Using -M directly means running the compiler twice (even worse
|
||||
## than renaming).
|
||||
if test -z "$gccflag"; then
|
||||
gccflag=-MD,
|
||||
fi
|
||||
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||
## The second -e expression handles DOS-style file names with drive letters.
|
||||
sed -e 's/^[^:]*: / /' \
|
||||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||
## This next piece of magic avoids the `deleted header file' problem.
|
||||
## The problem is that when a header file which appears in a .P file
|
||||
## is deleted, the dependency causes make to die (because there is
|
||||
## typically no way to rebuild the header). We avoid this by adding
|
||||
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||
## this for us directly.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" |
|
||||
## Some versions of gcc put a space before the `:'. On the theory
|
||||
## that the space means something, we add a space to the output as
|
||||
## well.
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
sgi)
|
||||
if test "$libtool" = yes; then
|
||||
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||
else
|
||||
"$@" -MDupdate "$tmpdepfile"
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
|
||||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||
echo "$object : \\" > "$depfile"
|
||||
|
||||
# Clip off the initial element (the dependent). Don't try to be
|
||||
# clever and replace this with sed code, as IRIX sed won't handle
|
||||
# lines with more than a fixed number of characters (4096 in
|
||||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||
# dependency line.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||
tr '
|
||||
' ' ' >> $depfile
|
||||
echo >> $depfile
|
||||
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> $depfile
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
aix)
|
||||
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||
# in a .u file. In older versions, this file always lives in the
|
||||
# current directory. Also, the AIX compiler puts `$object:' at the
|
||||
# start of each line; $object doesn't have directory information.
|
||||
# Version 6 uses the directory in both cases.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$base.u
|
||||
tmpdepfile3=$dir.libs/$base.u
|
||||
"$@" -Wc,-M
|
||||
else
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$dir$base.u
|
||||
tmpdepfile3=$dir$base.u
|
||||
"$@" -M
|
||||
fi
|
||||
stat=$?
|
||||
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
# Each line is of the form `foo.o: dependent.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
icc)
|
||||
# Intel's C compiler understands `-MD -MF file'. However on
|
||||
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
|
||||
# ICC 7.0 will fill foo.d with something like
|
||||
# foo.o: sub/foo.c
|
||||
# foo.o: sub/foo.h
|
||||
# which is wrong. We want:
|
||||
# sub/foo.o: sub/foo.c
|
||||
# sub/foo.o: sub/foo.h
|
||||
# sub/foo.c:
|
||||
# sub/foo.h:
|
||||
# ICC 7.1 will output
|
||||
# foo.o: sub/foo.c sub/foo.h
|
||||
# and will wrap long lines using \ :
|
||||
# foo.o: sub/foo.c ... \
|
||||
# sub/foo.h ... \
|
||||
# ...
|
||||
|
||||
"$@" -MD -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
# Each line is of the form `foo.o: dependent.h',
|
||||
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
# correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
|
||||
sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp2)
|
||||
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||
# compilers, which have integrated preprocessors. The correct option
|
||||
# to use with these is +Maked; it writes dependencies to a file named
|
||||
# 'foo.d', which lands next to the object file, wherever that
|
||||
# happens to be.
|
||||
# Much of this is similar to the tru64 case; see comments there.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir.libs/$base.d
|
||||
"$@" -Wc,+Maked
|
||||
else
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
"$@" +Maked
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||
# Add `dependent.h:' lines.
|
||||
sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||
;;
|
||||
|
||||
tru64)
|
||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||
# dependencies in `foo.d' instead, so we check for that too.
|
||||
# Subdirectories are respected.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
|
||||
if test "$libtool" = yes; then
|
||||
# With Tru64 cc, shared objects can also be used to make a
|
||||
# static library. This mechanism is used in libtool 1.4 series to
|
||||
# handle both shared and static libraries in a single compilation.
|
||||
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
|
||||
#
|
||||
# With libtool 1.5 this exception was removed, and libtool now
|
||||
# generates 2 separate objects for the 2 libraries. These two
|
||||
# compilations output dependencies in $dir.libs/$base.o.d and
|
||||
# in $dir$base.o.d. We have to check for both files, because
|
||||
# one of the two compilations can be disabled. We should prefer
|
||||
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||
# the former would cause a distcleancheck panic.
|
||||
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
|
||||
tmpdepfile2=$dir$base.o.d # libtool 1.5
|
||||
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
|
||||
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||
"$@" -Wc,-MD
|
||||
else
|
||||
tmpdepfile1=$dir$base.o.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
tmpdepfile3=$dir$base.d
|
||||
tmpdepfile4=$dir$base.d
|
||||
"$@" -MD
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
#nosideeffect)
|
||||
# This comment above is used by automake to tell side-effect
|
||||
# dependency tracking mechanisms from slower ones.
|
||||
|
||||
dashmstdout)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout, regardless of -o.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
test -z "$dashmflag" && dashmflag=-M
|
||||
# Require at least two characters before searching for `:'
|
||||
# in the target name. This is to cope with DOS-style filenames:
|
||||
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
|
||||
"$@" $dashmflag |
|
||||
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
dashXmstdout)
|
||||
# This case only exists to satisfy depend.m4. It is never actually
|
||||
# run, as this mode is specially recognized in the preamble.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
makedepend)
|
||||
"$@" || exit $?
|
||||
# Remove any Libtool call
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
# X makedepend
|
||||
shift
|
||||
cleared=no
|
||||
for arg in "$@"; do
|
||||
case $cleared in
|
||||
no)
|
||||
set ""; shift
|
||||
cleared=yes ;;
|
||||
esac
|
||||
case "$arg" in
|
||||
-D*|-I*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
# Strip any option that makedepend may not understand. Remove
|
||||
# the object too, otherwise makedepend will parse it as a source file.
|
||||
-*|$object)
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
esac
|
||||
done
|
||||
obj_suffix="`echo $object | sed 's/^.*\././'`"
|
||||
touch "$tmpdepfile"
|
||||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||
' | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||
;;
|
||||
|
||||
cpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
"$@" -E |
|
||||
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||
sed '$ s: \\$::' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
cat < "$tmpdepfile" >> "$depfile"
|
||||
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvisualcpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout, regardless of -o,
|
||||
# because we must use -o when running libtool.
|
||||
"$@" || exit $?
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case "$arg" in
|
||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||
set fnord "$@"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
"$@" -E |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||
echo " " >> "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
none)
|
||||
exec "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown depmode $depmode" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
||||
Executable
+519
@@ -0,0 +1,519 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2006-12-25.00
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
# following copyright and license.
|
||||
#
|
||||
# Copyright (C) 1994 X Consortium
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to
|
||||
# deal in the Software without restriction, including without limitation the
|
||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
# sell copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
||||
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# Except as contained in this notice, the name of the X Consortium shall not
|
||||
# be used in advertising or otherwise to promote the sale, use or other deal-
|
||||
# ings in this Software without prior written authorization from the X Consor-
|
||||
# tium.
|
||||
#
|
||||
#
|
||||
# FSF changes to this file are in the public domain.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch.
|
||||
|
||||
nl='
|
||||
'
|
||||
IFS=" "" $nl"
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit=${DOITPROG-}
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
doit_exec=$doit
|
||||
fi
|
||||
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
|
||||
chgrpprog=${CHGRPPROG-chgrp}
|
||||
chmodprog=${CHMODPROG-chmod}
|
||||
chownprog=${CHOWNPROG-chown}
|
||||
cmpprog=${CMPPROG-cmp}
|
||||
cpprog=${CPPROG-cp}
|
||||
mkdirprog=${MKDIRPROG-mkdir}
|
||||
mvprog=${MVPROG-mv}
|
||||
rmprog=${RMPROG-rm}
|
||||
stripprog=${STRIPPROG-strip}
|
||||
|
||||
posix_glob='?'
|
||||
initialize_posix_glob='
|
||||
test "$posix_glob" != "?" || {
|
||||
if (set -f) 2>/dev/null; then
|
||||
posix_glob=
|
||||
else
|
||||
posix_glob=:
|
||||
fi
|
||||
}
|
||||
'
|
||||
|
||||
posix_mkdir=
|
||||
|
||||
# Desired mode of installed file.
|
||||
mode=0755
|
||||
|
||||
chgrpcmd=
|
||||
chmodcmd=$chmodprog
|
||||
chowncmd=
|
||||
mvcmd=$mvprog
|
||||
rmcmd="$rmprog -f"
|
||||
stripcmd=
|
||||
|
||||
src=
|
||||
dst=
|
||||
dir_arg=
|
||||
dst_arg=
|
||||
|
||||
copy_on_change=false
|
||||
no_target_directory=
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||
or: $0 [OPTION]... -d DIRECTORIES...
|
||||
|
||||
In the 1st form, copy SRCFILE to DSTFILE.
|
||||
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||
In the 4th, create DIRECTORIES.
|
||||
|
||||
Options:
|
||||
--help display this help and exit.
|
||||
--version display version info and exit.
|
||||
|
||||
-c (ignored)
|
||||
-C install only if different (preserve the last data modification time)
|
||||
-d create directories instead of installing files.
|
||||
-g GROUP $chgrpprog installed files to GROUP.
|
||||
-m MODE $chmodprog installed files to MODE.
|
||||
-o USER $chownprog installed files to USER.
|
||||
-s $stripprog installed files.
|
||||
-t DIRECTORY install into DIRECTORY.
|
||||
-T report an error if DSTFILE is a directory.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||
RMPROG STRIPPROG
|
||||
"
|
||||
|
||||
while test $# -ne 0; do
|
||||
case $1 in
|
||||
-c) ;;
|
||||
|
||||
-C) copy_on_change=true;;
|
||||
|
||||
-d) dir_arg=true;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) mode=$2
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift;;
|
||||
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dst_arg=$2
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||
for arg
|
||||
do
|
||||
if test -n "$dst_arg"; then
|
||||
# $@ is not empty: it contains at least $arg.
|
||||
set fnord "$@" "$dst_arg"
|
||||
shift # fnord
|
||||
fi
|
||||
shift # arg
|
||||
dst_arg=$arg
|
||||
done
|
||||
fi
|
||||
|
||||
if test $# -eq 0; then
|
||||
if test -z "$dir_arg"; then
|
||||
echo "$0: no input file specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
# It's OK to call `install-sh -d' without argument.
|
||||
# This can happen when creating conditional directories.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
# Set umask so as not to create temps with too-generous modes.
|
||||
# However, 'strip' requires both read and write access to temps.
|
||||
case $mode in
|
||||
# Optimize common cases.
|
||||
*644) cp_umask=133;;
|
||||
*755) cp_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
fi
|
||||
|
||||
for src
|
||||
do
|
||||
# Protect names starting with `-'.
|
||||
case $src in
|
||||
-*) src=./$src;;
|
||||
esac
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
dst=$src
|
||||
dstdir=$dst
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
if test ! -f "$src" && test ! -d "$src"; then
|
||||
echo "$0: $src does not exist." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$dst_arg"; then
|
||||
echo "$0: no destination specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dst=$dst_arg
|
||||
# Protect names starting with `-'.
|
||||
case $dst in
|
||||
-*) dst=./$dst;;
|
||||
esac
|
||||
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
if test -d "$dst"; then
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstdir_status=0
|
||||
else
|
||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||
dstdir=`
|
||||
(dirname "$dst") 2>/dev/null ||
|
||||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$dst" : 'X\(//\)[^/]' \| \
|
||||
X"$dst" : 'X\(//\)$' \| \
|
||||
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
echo X"$dst" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)[^/].*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\).*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
s/.*/./; q'
|
||||
`
|
||||
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
obsolete_mkdir_used=false
|
||||
|
||||
if test $dstdir_status != 0; then
|
||||
case $posix_mkdir in
|
||||
'')
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writeable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
else
|
||||
|
||||
# The umask is ridiculous, or mkdir does not conform to POSIX,
|
||||
# or it failed possibly due to a race condition. Create the
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
-*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
eval "$initialize_posix_glob"
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
$posix_glob set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
$posix_glob set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test -z "$d" && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
||||
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
||||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
|
||||
else
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
dsttmp=$dstdir/_inst.$$_
|
||||
rmtmp=$dstdir/_rm.$$_
|
||||
|
||||
# Trap to clean up those temp files at exit.
|
||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||
|
||||
# Copy the file name to the temp name.
|
||||
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits.
|
||||
#
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||
#
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
|
||||
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
|
||||
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
|
||||
|
||||
# If -C, don't bother to copy if it wouldn't change the file.
|
||||
if $copy_on_change &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
|
||||
eval "$initialize_posix_glob" &&
|
||||
$posix_glob set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
$posix_glob set +f &&
|
||||
|
||||
test "$old" = "$new" &&
|
||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||
then
|
||||
rm -f "$dsttmp"
|
||||
else
|
||||
# Rename the file to the real destination.
|
||||
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
||||
|
||||
# The rename failed, perhaps because mv can't rename something else
|
||||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
{
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
fi || exit 1
|
||||
|
||||
trap '' 0
|
||||
fi
|
||||
done
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
||||
Executable
+8457
File diff suppressed because it is too large
Load Diff
Executable
+367
@@ -0,0 +1,367 @@
|
||||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
|
||||
scriptversion=2006-05-10.23
|
||||
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
|
||||
# Free Software Foundation, Inc.
|
||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
run=:
|
||||
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
|
||||
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
|
||||
|
||||
# In the cases where this matters, `missing' is being run in the
|
||||
# srcdir already.
|
||||
if test -f configure.ac; then
|
||||
configure_ac=configure.ac
|
||||
else
|
||||
configure_ac=configure.in
|
||||
fi
|
||||
|
||||
msg="missing on your system"
|
||||
|
||||
case $1 in
|
||||
--run)
|
||||
# Try to run requested program, and just exit if it succeeds.
|
||||
run=
|
||||
shift
|
||||
"$@" && exit 0
|
||||
# Exit code 63 means version mismatch. This often happens
|
||||
# when the user try to use an ancient version of a tool on
|
||||
# a file that requires a minimum version. In this case we
|
||||
# we should proceed has if the program had been absent, or
|
||||
# if --run hadn't been passed.
|
||||
if test $? = 63; then
|
||||
run=:
|
||||
msg="probably too old"
|
||||
fi
|
||||
;;
|
||||
|
||||
-h|--h|--he|--hel|--help)
|
||||
echo "\
|
||||
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||
|
||||
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||
error status if there is no known handling for PROGRAM.
|
||||
|
||||
Options:
|
||||
-h, --help display this help and exit
|
||||
-v, --version output version information and exit
|
||||
--run try to run the given command, and emulate it if it fails
|
||||
|
||||
Supported PROGRAM values:
|
||||
aclocal touch file \`aclocal.m4'
|
||||
autoconf touch file \`configure'
|
||||
autoheader touch file \`config.h.in'
|
||||
autom4te touch the output file, or create a stub one
|
||||
automake touch all \`Makefile.in' files
|
||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
flex create \`lex.yy.c', if possible, from existing .c
|
||||
help2man touch the output file
|
||||
lex create \`lex.yy.c', if possible, from existing .c
|
||||
makeinfo touch the output file
|
||||
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
|
||||
Send bug reports to <bug-automake@gnu.org>."
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||
echo "missing $scriptversion (GNU Automake)"
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-*)
|
||||
echo 1>&2 "$0: Unknown \`$1' option"
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# Now exit if we have it, but it failed. Also exit now if we
|
||||
# don't have it and --version was passed (most likely to detect
|
||||
# the program).
|
||||
case $1 in
|
||||
lex|yacc)
|
||||
# Not GNU programs, they don't have --version.
|
||||
;;
|
||||
|
||||
tar)
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
# Could not run --version or --help. This is probably someone
|
||||
# running `$TOOL --version' or `$TOOL --help' to check whether
|
||||
# $TOOL exists and not knowing $TOOL uses missing.
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# If it does not exist, or fails to run (possibly an outdated version),
|
||||
# try to emulate it.
|
||||
case $1 in
|
||||
aclocal*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||
any GNU archive site."
|
||||
touch aclocal.m4
|
||||
;;
|
||||
|
||||
autoconf)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`${configure_ac}'. You might want to install the
|
||||
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||
archive site."
|
||||
touch configure
|
||||
;;
|
||||
|
||||
autoheader)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||
from any GNU archive site."
|
||||
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||
test -z "$files" && files="config.h"
|
||||
touch_files=
|
||||
for f in $files; do
|
||||
case $f in
|
||||
*:*) touch_files="$touch_files "`echo "$f" |
|
||||
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||
*) touch_files="$touch_files $f.in";;
|
||||
esac
|
||||
done
|
||||
touch $touch_files
|
||||
;;
|
||||
|
||||
automake*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||
You might want to install the \`Automake' and \`Perl' packages.
|
||||
Grab them from any GNU archive site."
|
||||
find . -type f -name Makefile.am -print |
|
||||
sed 's/\.am$/.in/' |
|
||||
while read f; do touch "$f"; done
|
||||
;;
|
||||
|
||||
autom4te)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, but is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them.
|
||||
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||
archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo "#! /bin/sh"
|
||||
echo "# Created by GNU Automake missing as a replacement of"
|
||||
echo "# $ $@"
|
||||
echo "exit 0"
|
||||
chmod +x $file
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
bison|yacc)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' $msg. You should only need it if
|
||||
you modified a \`.y' file. You may need the \`Bison' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Bison' from any GNU archive site."
|
||||
rm -f y.tab.c y.tab.h
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.y)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.c
|
||||
fi
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.h
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f y.tab.h; then
|
||||
echo >y.tab.h
|
||||
fi
|
||||
if test ! -f y.tab.c; then
|
||||
echo 'main() { return 0; }' >y.tab.c
|
||||
fi
|
||||
;;
|
||||
|
||||
lex|flex)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.l' file. You may need the \`Flex' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Flex' from any GNU archive site."
|
||||
rm -f lex.yy.c
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.l)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" lex.yy.c
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f lex.yy.c; then
|
||||
echo 'main() { return 0; }' >lex.yy.c
|
||||
fi
|
||||
;;
|
||||
|
||||
help2man)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a dependency of a manual page. You may need the
|
||||
\`Help2man' package in order for those modifications to take
|
||||
effect. You can get \`Help2man' from any GNU archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo ".ab help2man is required to generate this page"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
makeinfo)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||
indirectly affecting the aspect of the manual. The spurious
|
||||
call might also be the consequence of using a buggy \`make' (AIX,
|
||||
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||
the \`GNU make' package. Grab either from any GNU archive site."
|
||||
# The file to touch is that specified with -o ...
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -z "$file"; then
|
||||
# ... or it is the one specified with @setfilename ...
|
||||
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||
file=`sed -n '
|
||||
/^@setfilename/{
|
||||
s/.* \([^ ]*\) *$/\1/
|
||||
p
|
||||
q
|
||||
}' $infile`
|
||||
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
||||
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
||||
fi
|
||||
# If the file does not exist, the user really needs makeinfo;
|
||||
# let's fail without touching anything.
|
||||
test -f $file || exit 1
|
||||
touch $file
|
||||
;;
|
||||
|
||||
tar)
|
||||
shift
|
||||
|
||||
# We have already tried tar in the generic part.
|
||||
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||
# messages.
|
||||
if (gnutar --version > /dev/null 2>&1); then
|
||||
gnutar "$@" && exit 0
|
||||
fi
|
||||
if (gtar --version > /dev/null 2>&1); then
|
||||
gtar "$@" && exit 0
|
||||
fi
|
||||
firstarg="$1"
|
||||
if shift; then
|
||||
case $firstarg in
|
||||
*o*)
|
||||
firstarg=`echo "$firstarg" | sed s/o//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
case $firstarg in
|
||||
*h*)
|
||||
firstarg=`echo "$firstarg" | sed s/h//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||
You may want to install GNU tar or Free paxutils, or check the
|
||||
command line arguments."
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, and is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them. Check the \`README' file,
|
||||
it often tells you about the needed prerequisites for installing
|
||||
this package. You may also peek at any GNU archive site, in case
|
||||
some other package would contain this missing \`$1' program."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
||||
Executable
+223
@@ -0,0 +1,223 @@
|
||||
#! /bin/sh
|
||||
# ylwrap - wrapper for lex/yacc invocations.
|
||||
|
||||
scriptversion=2007-11-22.22
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005,
|
||||
# 2007 Free Software Foundation, Inc.
|
||||
#
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
case "$1" in
|
||||
'')
|
||||
echo "$0: No files given. Try \`$0 --help' for more information." 1>&2
|
||||
exit 1
|
||||
;;
|
||||
--basedir)
|
||||
basedir=$2
|
||||
shift 2
|
||||
;;
|
||||
-h|--h*)
|
||||
cat <<\EOF
|
||||
Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
|
||||
|
||||
Wrapper for lex/yacc invocations, renaming files as desired.
|
||||
|
||||
INPUT is the input file
|
||||
OUTPUT is one file PROG generates
|
||||
DESIRED is the file we actually want instead of OUTPUT
|
||||
PROGRAM is program to run
|
||||
ARGS are passed to PROG
|
||||
|
||||
Any number of OUTPUT,DESIRED pairs may be used.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v|--v*)
|
||||
echo "ylwrap $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
# The input.
|
||||
input="$1"
|
||||
shift
|
||||
case "$input" in
|
||||
[\\/]* | ?:[\\/]*)
|
||||
# Absolute path; do nothing.
|
||||
;;
|
||||
*)
|
||||
# Relative path. Make it absolute.
|
||||
input="`pwd`/$input"
|
||||
;;
|
||||
esac
|
||||
|
||||
pairlist=
|
||||
while test "$#" -ne 0; do
|
||||
if test "$1" = "--"; then
|
||||
shift
|
||||
break
|
||||
fi
|
||||
pairlist="$pairlist $1"
|
||||
shift
|
||||
done
|
||||
|
||||
# The program to run.
|
||||
prog="$1"
|
||||
shift
|
||||
# Make any relative path in $prog absolute.
|
||||
case "$prog" in
|
||||
[\\/]* | ?:[\\/]*) ;;
|
||||
*[\\/]*) prog="`pwd`/$prog" ;;
|
||||
esac
|
||||
|
||||
# FIXME: add hostname here for parallel makes that run commands on
|
||||
# other machines. But that might take us over the 14-char limit.
|
||||
dirname=ylwrap$$
|
||||
trap "cd '`pwd`'; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
|
||||
mkdir $dirname || exit 1
|
||||
|
||||
cd $dirname
|
||||
|
||||
case $# in
|
||||
0) "$prog" "$input" ;;
|
||||
*) "$prog" "$@" "$input" ;;
|
||||
esac
|
||||
ret=$?
|
||||
|
||||
if test $ret -eq 0; then
|
||||
set X $pairlist
|
||||
shift
|
||||
first=yes
|
||||
# Since DOS filename conventions don't allow two dots,
|
||||
# the DOS version of Bison writes out y_tab.c instead of y.tab.c
|
||||
# and y_tab.h instead of y.tab.h. Test to see if this is the case.
|
||||
y_tab_nodot="no"
|
||||
if test -f y_tab.c || test -f y_tab.h; then
|
||||
y_tab_nodot="yes"
|
||||
fi
|
||||
|
||||
# The directory holding the input.
|
||||
input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
|
||||
# Quote $INPUT_DIR so we can use it in a regexp.
|
||||
# FIXME: really we should care about more than `.' and `\'.
|
||||
input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
|
||||
|
||||
while test "$#" -ne 0; do
|
||||
from="$1"
|
||||
# Handle y_tab.c and y_tab.h output by DOS
|
||||
if test $y_tab_nodot = "yes"; then
|
||||
if test $from = "y.tab.c"; then
|
||||
from="y_tab.c"
|
||||
else
|
||||
if test $from = "y.tab.h"; then
|
||||
from="y_tab.h"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test -f "$from"; then
|
||||
# If $2 is an absolute path name, then just use that,
|
||||
# otherwise prepend `../'.
|
||||
case "$2" in
|
||||
[\\/]* | ?:[\\/]*) target="$2";;
|
||||
*) target="../$2";;
|
||||
esac
|
||||
|
||||
# We do not want to overwrite a header file if it hasn't
|
||||
# changed. This avoid useless recompilations. However the
|
||||
# parser itself (the first file) should always be updated,
|
||||
# because it is the destination of the .y.c rule in the
|
||||
# Makefile. Divert the output of all other files to a temporary
|
||||
# file so we can compare them to existing versions.
|
||||
if test $first = no; then
|
||||
realtarget="$target"
|
||||
target="tmp-`echo $target | sed s/.*[\\/]//g`"
|
||||
fi
|
||||
# Edit out `#line' or `#' directives.
|
||||
#
|
||||
# We don't want the resulting debug information to point at
|
||||
# an absolute srcdir; it is better for it to just mention the
|
||||
# .y file with no path.
|
||||
#
|
||||
# We want to use the real output file name, not yy.lex.c for
|
||||
# instance.
|
||||
#
|
||||
# We want the include guards to be adjusted too.
|
||||
FROM=`echo "$from" | sed \
|
||||
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
|
||||
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
|
||||
TARGET=`echo "$2" | sed \
|
||||
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
|
||||
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
|
||||
|
||||
sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \
|
||||
-e "s,$FROM,$TARGET," "$from" >"$target" || ret=$?
|
||||
|
||||
# Check whether header files must be updated.
|
||||
if test $first = no; then
|
||||
if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
|
||||
echo "$2" is unchanged
|
||||
rm -f "$target"
|
||||
else
|
||||
echo updating "$2"
|
||||
mv -f "$target" "$realtarget"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# A missing file is only an error for the first file. This
|
||||
# is a blatant hack to let us support using "yacc -d". If -d
|
||||
# is not specified, we don't want an error when the header
|
||||
# file is "missing".
|
||||
if test $first = yes; then
|
||||
ret=1
|
||||
fi
|
||||
fi
|
||||
shift
|
||||
shift
|
||||
first=no
|
||||
done
|
||||
else
|
||||
ret=$?
|
||||
fi
|
||||
|
||||
# Remove the directory.
|
||||
cd ..
|
||||
rm -rf $dirname
|
||||
|
||||
exit $ret
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
||||
+14438
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,62 @@
|
||||
AC_INIT([libcue], [1.4.0], [jochen.keil@gmail.com])
|
||||
AC_CONFIG_AUX_DIR([config])
|
||||
AC_CONFIG_MACRO_DIR([config])
|
||||
AM_INIT_AUTOMAKE([foreign 1.9 dist-bzip2])
|
||||
AM_CONFIG_HEADER([config.h])
|
||||
|
||||
m4_define([package_major_version], [1])
|
||||
m4_define([package_minor_version], [4])
|
||||
m4_define([package_micro_version], [0])
|
||||
m4_define([package_version], [package_major_version.package_minor_version.package_micro_version])
|
||||
AM_INIT_AUTOMAKE
|
||||
|
||||
# This makes sure the right substitution is done
|
||||
[LIBCUE_MAJOR_VERSION]=package_major_version
|
||||
[LIBCUE_MINOR_VERSION]=package_minor_version
|
||||
[LIBCUE_MICRO_VERSION]=package_micro_version
|
||||
AC_SUBST([LIBCUE_MAJOR_VERSION])
|
||||
AC_SUBST([LIBCUE_MINOR_VERSION])
|
||||
AC_SUBST([LIBCUE_MICRO_VERSION])
|
||||
|
||||
# CURRENT:REVISION:AGE
|
||||
#
|
||||
# CURRENT
|
||||
# The most recent interface number that this library implements.
|
||||
# REVISION
|
||||
# The implementation number of the current interface.
|
||||
# AGE
|
||||
# The difference between the newest and oldest interfaces that this library
|
||||
# implements. In other words, the library implements all the interface numbers in
|
||||
# the range from number current - age to current.
|
||||
|
||||
LIBCUE_LIBRARY_NAME=libcue
|
||||
AC_SUBST(LIBCUE_LIBRARY_NAME)
|
||||
|
||||
LIBCUE_LIBTOOL_VERSION=$LIBCUE_MAJOR_VERSION:$LIBCUE_MINOR_VERSION:$LIBCUE_MICRO_VERSION
|
||||
AC_SUBST(LIBCUE_LIBTOOL_VERSION)
|
||||
|
||||
LIBCUE_API_VERSION=$LIBCUE_MAJOR_VERSION.$LIBCUE_MINOR_VERSION
|
||||
AC_SUBST(LIBCUE_API_VERSION)
|
||||
|
||||
AC_CHECK_HEADERS([libintl.h, malloc.c, stddef.h])
|
||||
|
||||
AC_TYPE_SIZE_T
|
||||
|
||||
AC_PROG_CC_C99
|
||||
AM_PROG_LEX
|
||||
AC_PROG_YACC
|
||||
AM_PROG_LIBTOOL
|
||||
|
||||
AC_ARG_WITH([parser-buffer],
|
||||
[AS_HELP_STRING([--with-parser-buffer=SIZE],
|
||||
[Size of parser buffer. Default of 1024 should be enough])],
|
||||
[parser_buffer="$withval"],
|
||||
[parser_buffer=1024])
|
||||
|
||||
AC_DEFINE_UNQUOTED([PARSER_BUFFER], [$parser_buffer], [Size of parser buffer])
|
||||
|
||||
AC_OUTPUT([
|
||||
Makefile
|
||||
src/libcue/Makefile
|
||||
src/libcue/libcue.pc
|
||||
])
|
||||
Executable
+8941
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1,577 @@
|
||||
# Makefile.in generated by automake 1.10.1 from Makefile.am.
|
||||
# src/libcue/Makefile. Generated from Makefile.in by configure.
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
pkgdatadir = $(datadir)/libcue
|
||||
pkglibdir = $(libdir)/libcue
|
||||
pkgincludedir = $(includedir)/libcue
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = i686-apple-darwin11.4.0
|
||||
host_triplet = i686-apple-darwin11.4.0
|
||||
subdir = src/libcue
|
||||
DIST_COMMON = $(libcueinclude_HEADERS) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/libcue.pc.in cue_parser.c \
|
||||
cue_parser.h cue_scanner.c
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES = libcue.pc
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \
|
||||
"$(DESTDIR)$(libcueincludedir)"
|
||||
libLTLIBRARIES_INSTALL = $(INSTALL)
|
||||
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||
libcue_la_LIBADD =
|
||||
am_libcue_la_OBJECTS = cd.lo cdtext.lo rem.lo time.lo cue_parser.lo \
|
||||
cue_scanner.lo
|
||||
libcue_la_OBJECTS = $(am_libcue_la_OBJECTS)
|
||||
libcue_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(libcue_la_LDFLAGS) $(LDFLAGS) -o $@
|
||||
DEFAULT_INCLUDES = -I. -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS)
|
||||
LTLEXCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS)
|
||||
YLWRAP = $(top_srcdir)/config/ylwrap
|
||||
YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
|
||||
LTYACCCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=compile $(YACC) $(YFLAGS) $(AM_YFLAGS)
|
||||
SOURCES = $(libcue_la_SOURCES)
|
||||
DIST_SOURCES = $(libcue_la_SOURCES)
|
||||
pkgconfigDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(pkgconfig_DATA)
|
||||
libcueincludeHEADERS_INSTALL = $(INSTALL_HEADER)
|
||||
HEADERS = $(libcueinclude_HEADERS)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = ${SHELL} /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/config/missing --run aclocal-1.10
|
||||
AMTAR = ${SHELL} /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/config/missing --run tar
|
||||
AR = ar
|
||||
AUTOCONF = ${SHELL} /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/config/missing --run autoconf
|
||||
AUTOHEADER = ${SHELL} /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/config/missing --run autoheader
|
||||
AUTOMAKE = ${SHELL} /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/config/missing --run automake-1.10
|
||||
AWK = awk
|
||||
CC = gcc -std=gnu99
|
||||
CCDEPMODE = depmode=gcc3
|
||||
CFLAGS = -g -O2
|
||||
CPP = gcc -E
|
||||
CPPFLAGS =
|
||||
CYGPATH_W = echo
|
||||
DEFS = -DHAVE_CONFIG_H
|
||||
DEPDIR = .deps
|
||||
DSYMUTIL = dsymutil
|
||||
DUMPBIN =
|
||||
ECHO_C = \c
|
||||
ECHO_N =
|
||||
ECHO_T =
|
||||
EGREP = /usr/bin/grep -E
|
||||
EXEEXT =
|
||||
FGREP = /usr/bin/grep -F
|
||||
GREP = /usr/bin/grep
|
||||
INSTALL = /usr/bin/install -c
|
||||
INSTALL_DATA = ${INSTALL} -m 644
|
||||
INSTALL_PROGRAM = ${INSTALL}
|
||||
INSTALL_SCRIPT = ${INSTALL}
|
||||
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
|
||||
LD = /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld
|
||||
LDFLAGS =
|
||||
LEX = flex
|
||||
LEXLIB = -lfl
|
||||
LEX_OUTPUT_ROOT = lex.yy
|
||||
LIBCUE_API_VERSION = 1.4
|
||||
LIBCUE_LIBRARY_NAME = libcue
|
||||
LIBCUE_LIBTOOL_VERSION = 1:4:0
|
||||
LIBCUE_MAJOR_VERSION = 1
|
||||
LIBCUE_MICRO_VERSION = 0
|
||||
LIBCUE_MINOR_VERSION = 4
|
||||
LIBOBJS =
|
||||
LIBS =
|
||||
LIBTOOL = $(SHELL) $(top_builddir)/libtool
|
||||
LIPO = lipo
|
||||
LN_S = ln -s
|
||||
LTLIBOBJS =
|
||||
MAKEINFO = ${SHELL} /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/config/missing --run makeinfo
|
||||
MKDIR_P = ../../config/install-sh -c -d
|
||||
NM = /usr/bin/nm
|
||||
NMEDIT = nmedit
|
||||
OBJDUMP = false
|
||||
OBJEXT = o
|
||||
OTOOL = otool
|
||||
OTOOL64 = :
|
||||
PACKAGE = libcue
|
||||
PACKAGE_BUGREPORT = jochen.keil@gmail.com
|
||||
PACKAGE_NAME = libcue
|
||||
PACKAGE_STRING = libcue 1.4.0
|
||||
PACKAGE_TARNAME = libcue
|
||||
PACKAGE_VERSION = 1.4.0
|
||||
PATH_SEPARATOR = :
|
||||
RANLIB = ranlib
|
||||
SED = /usr/bin/sed
|
||||
SET_MAKE =
|
||||
SHELL = /bin/sh
|
||||
STRIP = strip
|
||||
VERSION = 1.4.0
|
||||
YACC = bison -y
|
||||
YFLAGS =
|
||||
abs_builddir = /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/src/libcue
|
||||
abs_srcdir = /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/src/libcue
|
||||
abs_top_builddir = /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0
|
||||
abs_top_srcdir = /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0
|
||||
ac_ct_CC = gcc
|
||||
ac_ct_DUMPBIN =
|
||||
am__include = include
|
||||
am__leading_dot = .
|
||||
am__quote =
|
||||
am__tar = ${AMTAR} chof - "$$tardir"
|
||||
am__untar = ${AMTAR} xf -
|
||||
bindir = ${exec_prefix}/bin
|
||||
build = i686-apple-darwin11.4.0
|
||||
build_alias =
|
||||
build_cpu = i686
|
||||
build_os = darwin11.4.0
|
||||
build_vendor = apple
|
||||
builddir = .
|
||||
datadir = ${datarootdir}
|
||||
datarootdir = ${prefix}/share
|
||||
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
|
||||
dvidir = ${docdir}
|
||||
exec_prefix = ${prefix}
|
||||
host = i686-apple-darwin11.4.0
|
||||
host_alias =
|
||||
host_cpu = i686
|
||||
host_os = darwin11.4.0
|
||||
host_vendor = apple
|
||||
htmldir = ${docdir}
|
||||
includedir = ${prefix}/include
|
||||
infodir = ${datarootdir}/info
|
||||
install_sh = $(SHELL) /Users/darvin/Projects/OpenEmu/FreeDO/libcue-1.4.0/config/install-sh
|
||||
libdir = ${exec_prefix}/lib
|
||||
libexecdir = ${exec_prefix}/libexec
|
||||
localedir = ${datarootdir}/locale
|
||||
localstatedir = ${prefix}/var
|
||||
lt_ECHO = /bin/echo
|
||||
mandir = ${datarootdir}/man
|
||||
mkdir_p = $(top_builddir)/config/install-sh -c -d
|
||||
oldincludedir = /usr/include
|
||||
pdfdir = ${docdir}
|
||||
prefix = /usr/local
|
||||
program_transform_name = s,x,x,
|
||||
psdir = ${docdir}
|
||||
sbindir = ${exec_prefix}/sbin
|
||||
sharedstatedir = ${prefix}/com
|
||||
srcdir = .
|
||||
sysconfdir = ${prefix}/etc
|
||||
target_alias =
|
||||
top_build_prefix = ../../
|
||||
top_builddir = ../..
|
||||
top_srcdir = ../..
|
||||
AM_YFLAGS = -d
|
||||
EXTRA_DIST = libcue.pc.in
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libcue.pc
|
||||
INCLUDES = \
|
||||
-I. \
|
||||
-Wall -Wmissing-declarations
|
||||
|
||||
libcue_la_SOURCES = \
|
||||
cd.c \
|
||||
cdtext.c \
|
||||
rem.c \
|
||||
time.c \
|
||||
cue_parser.y \
|
||||
cue_scanner.l
|
||||
|
||||
libcueinclude_HEADERS = \
|
||||
libcue.h \
|
||||
cd.h \
|
||||
cdtext.h \
|
||||
rem.h \
|
||||
time.h
|
||||
|
||||
lib_LTLIBRARIES = libcue.la
|
||||
libcue_la_LDFLAGS = -version-info 1:4:0
|
||||
libcueincludedir = $(includedir)/libcue-1.4/libcue
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .l .lo .o .obj .y
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/libcue/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign src/libcue/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
libcue.pc: $(top_builddir)/config.status $(srcdir)/libcue.pc.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
|
||||
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-libLTLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
p=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
|
||||
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
|
||||
done
|
||||
|
||||
clean-libLTLIBRARIES:
|
||||
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
||||
test "$$dir" != "$$p" || dir=.; \
|
||||
echo "rm -f \"$${dir}/so_locations\""; \
|
||||
rm -f "$${dir}/so_locations"; \
|
||||
done
|
||||
cue_parser.h: cue_parser.c
|
||||
@if test ! -f $@; then \
|
||||
rm -f cue_parser.c; \
|
||||
$(MAKE) $(AM_MAKEFLAGS) cue_parser.c; \
|
||||
else :; fi
|
||||
libcue.la: $(libcue_la_OBJECTS) $(libcue_la_DEPENDENCIES)
|
||||
$(libcue_la_LINK) -rpath $(libdir) $(libcue_la_OBJECTS) $(libcue_la_LIBADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
include ./$(DEPDIR)/cd.Plo
|
||||
include ./$(DEPDIR)/cdtext.Plo
|
||||
include ./$(DEPDIR)/cue_parser.Plo
|
||||
include ./$(DEPDIR)/cue_scanner.Plo
|
||||
include ./$(DEPDIR)/rem.Plo
|
||||
include ./$(DEPDIR)/time.Plo
|
||||
|
||||
.c.o:
|
||||
$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
# source='$<' object='$@' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
|
||||
# $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
# source='$<' object='$@' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
|
||||
# $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
# source='$<' object='$@' libtool=yes \
|
||||
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
|
||||
# $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
.l.c:
|
||||
$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)
|
||||
|
||||
.y.c:
|
||||
$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE)
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-pkgconfigDATA: $(pkgconfig_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
|
||||
@list='$(pkgconfig_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
|
||||
$(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-pkgconfigDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(pkgconfig_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \
|
||||
done
|
||||
install-libcueincludeHEADERS: $(libcueinclude_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(libcueincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libcueincludedir)"
|
||||
@list='$(libcueinclude_HEADERS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(libcueincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libcueincludedir)/$$f'"; \
|
||||
$(libcueincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libcueincludedir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-libcueincludeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(libcueinclude_HEADERS)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(libcueincludedir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(libcueincludedir)/$$f"; \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libcueincludedir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-rm -f cue_parser.c
|
||||
-rm -f cue_parser.h
|
||||
-rm -f cue_scanner.c
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-libcueincludeHEADERS install-pkgconfigDATA
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am: install-libLTLIBRARIES
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-libLTLIBRARIES uninstall-libcueincludeHEADERS \
|
||||
uninstall-pkgconfigDATA
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-libLTLIBRARIES clean-libtool ctags distclean \
|
||||
distclean-compile distclean-generic distclean-libtool \
|
||||
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am \
|
||||
install-libLTLIBRARIES install-libcueincludeHEADERS \
|
||||
install-man install-pdf install-pdf-am install-pkgconfigDATA \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags uninstall uninstall-am uninstall-libLTLIBRARIES \
|
||||
uninstall-libcueincludeHEADERS uninstall-pkgconfigDATA
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
@@ -0,0 +1,31 @@
|
||||
AM_YFLAGS = -d
|
||||
|
||||
EXTRA_DIST = libcue.pc.in
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libcue.pc
|
||||
|
||||
|
||||
INCLUDES = \
|
||||
-I. \
|
||||
-Wall -Wmissing-declarations
|
||||
|
||||
libcue_la_SOURCES = \
|
||||
cd.c \
|
||||
cdtext.c \
|
||||
rem.c \
|
||||
time.c \
|
||||
cue_parser.y \
|
||||
cue_scanner.l
|
||||
|
||||
libcueinclude_HEADERS = \
|
||||
libcue.h \
|
||||
cd.h \
|
||||
cdtext.h \
|
||||
rem.h \
|
||||
time.h
|
||||
|
||||
lib_LTLIBRARIES = libcue.la
|
||||
|
||||
libcue_la_LDFLAGS = -version-info @LIBCUE_LIBTOOL_VERSION@
|
||||
libcueincludedir = $(includedir)/@LIBCUE_LIBRARY_NAME@-@LIBCUE_API_VERSION@/@LIBCUE_LIBRARY_NAME@
|
||||
@@ -0,0 +1,577 @@
|
||||
# Makefile.in generated by automake 1.10.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = src/libcue
|
||||
DIST_COMMON = $(libcueinclude_HEADERS) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/libcue.pc.in cue_parser.c \
|
||||
cue_parser.h cue_scanner.c
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES = libcue.pc
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \
|
||||
"$(DESTDIR)$(libcueincludedir)"
|
||||
libLTLIBRARIES_INSTALL = $(INSTALL)
|
||||
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||
libcue_la_LIBADD =
|
||||
am_libcue_la_OBJECTS = cd.lo cdtext.lo rem.lo time.lo cue_parser.lo \
|
||||
cue_scanner.lo
|
||||
libcue_la_OBJECTS = $(am_libcue_la_OBJECTS)
|
||||
libcue_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(libcue_la_LDFLAGS) $(LDFLAGS) -o $@
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS)
|
||||
LTLEXCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS)
|
||||
YLWRAP = $(top_srcdir)/config/ylwrap
|
||||
YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
|
||||
LTYACCCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=compile $(YACC) $(YFLAGS) $(AM_YFLAGS)
|
||||
SOURCES = $(libcue_la_SOURCES)
|
||||
DIST_SOURCES = $(libcue_la_SOURCES)
|
||||
pkgconfigDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(pkgconfig_DATA)
|
||||
libcueincludeHEADERS_INSTALL = $(INSTALL_HEADER)
|
||||
HEADERS = $(libcueinclude_HEADERS)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LEX = @LEX@
|
||||
LEXLIB = @LEXLIB@
|
||||
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
|
||||
LIBCUE_API_VERSION = @LIBCUE_API_VERSION@
|
||||
LIBCUE_LIBRARY_NAME = @LIBCUE_LIBRARY_NAME@
|
||||
LIBCUE_LIBTOOL_VERSION = @LIBCUE_LIBTOOL_VERSION@
|
||||
LIBCUE_MAJOR_VERSION = @LIBCUE_MAJOR_VERSION@
|
||||
LIBCUE_MICRO_VERSION = @LIBCUE_MICRO_VERSION@
|
||||
LIBCUE_MINOR_VERSION = @LIBCUE_MINOR_VERSION@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
YACC = @YACC@
|
||||
YFLAGS = @YFLAGS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
AM_YFLAGS = -d
|
||||
EXTRA_DIST = libcue.pc.in
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libcue.pc
|
||||
INCLUDES = \
|
||||
-I. \
|
||||
-Wall -Wmissing-declarations
|
||||
|
||||
libcue_la_SOURCES = \
|
||||
cd.c \
|
||||
cdtext.c \
|
||||
rem.c \
|
||||
time.c \
|
||||
cue_parser.y \
|
||||
cue_scanner.l
|
||||
|
||||
libcueinclude_HEADERS = \
|
||||
libcue.h \
|
||||
cd.h \
|
||||
cdtext.h \
|
||||
rem.h \
|
||||
time.h
|
||||
|
||||
lib_LTLIBRARIES = libcue.la
|
||||
libcue_la_LDFLAGS = -version-info @LIBCUE_LIBTOOL_VERSION@
|
||||
libcueincludedir = $(includedir)/@LIBCUE_LIBRARY_NAME@-@LIBCUE_API_VERSION@/@LIBCUE_LIBRARY_NAME@
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .l .lo .o .obj .y
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/libcue/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign src/libcue/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
libcue.pc: $(top_builddir)/config.status $(srcdir)/libcue.pc.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
|
||||
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-libLTLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
p=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
|
||||
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
|
||||
done
|
||||
|
||||
clean-libLTLIBRARIES:
|
||||
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
||||
test "$$dir" != "$$p" || dir=.; \
|
||||
echo "rm -f \"$${dir}/so_locations\""; \
|
||||
rm -f "$${dir}/so_locations"; \
|
||||
done
|
||||
cue_parser.h: cue_parser.c
|
||||
@if test ! -f $@; then \
|
||||
rm -f cue_parser.c; \
|
||||
$(MAKE) $(AM_MAKEFLAGS) cue_parser.c; \
|
||||
else :; fi
|
||||
libcue.la: $(libcue_la_OBJECTS) $(libcue_la_DEPENDENCIES)
|
||||
$(libcue_la_LINK) -rpath $(libdir) $(libcue_la_OBJECTS) $(libcue_la_LIBADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cd.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cdtext.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cue_parser.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cue_scanner.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rem.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time.Plo@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
.l.c:
|
||||
$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)
|
||||
|
||||
.y.c:
|
||||
$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE)
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-pkgconfigDATA: $(pkgconfig_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
|
||||
@list='$(pkgconfig_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
|
||||
$(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-pkgconfigDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(pkgconfig_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \
|
||||
done
|
||||
install-libcueincludeHEADERS: $(libcueinclude_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(libcueincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libcueincludedir)"
|
||||
@list='$(libcueinclude_HEADERS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(libcueincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libcueincludedir)/$$f'"; \
|
||||
$(libcueincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libcueincludedir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-libcueincludeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(libcueinclude_HEADERS)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(libcueincludedir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(libcueincludedir)/$$f"; \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libcueincludedir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-rm -f cue_parser.c
|
||||
-rm -f cue_parser.h
|
||||
-rm -f cue_scanner.c
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-libcueincludeHEADERS install-pkgconfigDATA
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am: install-libLTLIBRARIES
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-libLTLIBRARIES uninstall-libcueincludeHEADERS \
|
||||
uninstall-pkgconfigDATA
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-libLTLIBRARIES clean-libtool ctags distclean \
|
||||
distclean-compile distclean-generic distclean-libtool \
|
||||
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am \
|
||||
install-libLTLIBRARIES install-libcueincludeHEADERS \
|
||||
install-man install-pdf install-pdf-am install-pkgconfigDATA \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags uninstall uninstall-am uninstall-libLTLIBRARIES \
|
||||
uninstall-libcueincludeHEADERS uninstall-pkgconfigDATA
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
@@ -0,0 +1,420 @@
|
||||
/*
|
||||
* Copyright (c) 2004, 2005, 2006, 2007, Svend Sorensen
|
||||
* Copyright (c) 2009, 2010 Jochen Keil
|
||||
* For license terms, see the file COPYING in this distribution.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "cd.h"
|
||||
|
||||
typedef struct Data Data;
|
||||
struct Data {
|
||||
int type; /* DataType */
|
||||
char *name; /* data source name */
|
||||
long start; /* start time for data */
|
||||
long length; /* length of data */
|
||||
};
|
||||
|
||||
struct Track {
|
||||
Data zero_pre; /* pre-gap generated with zero data */
|
||||
Data file; /* track data file */
|
||||
Data zero_post; /* post-gap generated with zero data */
|
||||
int mode; /* track mode */
|
||||
int sub_mode; /* sub-channel mode */
|
||||
int flags; /* flags */
|
||||
char *isrc; /* IRSC Code (5.22.4) 12 bytes */
|
||||
Cdtext *cdtext; /* CD-TEXT */
|
||||
Rem* rem;
|
||||
int nindex; /* number of indexes */
|
||||
long index[MAXINDEX]; /* indexes (in frames) (5.29.2.5)
|
||||
* relative to start of track
|
||||
* index[0] should always be zero */
|
||||
};
|
||||
|
||||
struct Cd {
|
||||
int mode; /* disc mode */
|
||||
char *catalog; /* Media Catalog Number (5.22.3) */
|
||||
char *cdtextfile; /* Filename of CDText File */
|
||||
Cdtext *cdtext; /* CD-TEXT */
|
||||
Rem* rem;
|
||||
int ntrack; /* number of tracks in album */
|
||||
Track *track[MAXTRACK]; /* array of tracks */
|
||||
};
|
||||
|
||||
Cd *cd_init(void)
|
||||
{
|
||||
Cd *cd = NULL;
|
||||
cd = malloc(sizeof(Cd));
|
||||
|
||||
if(NULL == cd) {
|
||||
fprintf(stderr, "unable to create cd\n");
|
||||
} else {
|
||||
cd->mode = MODE_CD_DA;
|
||||
cd->catalog = NULL;
|
||||
cd->cdtextfile = NULL;
|
||||
cd->cdtext = cdtext_init();
|
||||
cd->rem = rem_new();
|
||||
cd->ntrack = 0;
|
||||
}
|
||||
|
||||
return cd;
|
||||
}
|
||||
|
||||
void track_delete(struct Track* track)
|
||||
{
|
||||
if (track != NULL)
|
||||
{
|
||||
cdtext_delete(track_get_cdtext(track));
|
||||
|
||||
rem_free(track_get_rem(track));
|
||||
|
||||
free(track->isrc);
|
||||
|
||||
free(track->zero_pre.name);
|
||||
|
||||
free(track->zero_post.name);
|
||||
|
||||
free(track->file.name);
|
||||
|
||||
free(track);
|
||||
}
|
||||
}
|
||||
|
||||
void cd_delete(struct Cd* cd)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
if (cd != NULL)
|
||||
{
|
||||
free(cd->catalog);
|
||||
|
||||
free(cd->cdtextfile);
|
||||
|
||||
for (i = 0; i < cd->ntrack; i++)
|
||||
track_delete(cd->track[i]);
|
||||
|
||||
cdtext_delete(cd_get_cdtext(cd));
|
||||
|
||||
rem_free(cd_get_rem(cd));
|
||||
|
||||
free(cd);
|
||||
}
|
||||
}
|
||||
|
||||
Track *track_init(void)
|
||||
{
|
||||
Track *track = NULL;
|
||||
track = malloc(sizeof(Track));
|
||||
|
||||
if (NULL == track) {
|
||||
fprintf(stderr, "unable to create track\n");
|
||||
} else {
|
||||
track->zero_pre.type = DATA_ZERO;
|
||||
track->zero_pre.name = NULL;
|
||||
track->zero_pre.start = 0;
|
||||
track->zero_pre.length = 0;
|
||||
|
||||
track->file.type = DATA_AUDIO;
|
||||
track->file.name = NULL;
|
||||
track->file.start = 0;
|
||||
track->file.length = 0;
|
||||
|
||||
track->zero_post.type = DATA_ZERO;
|
||||
track->zero_post.name = NULL;
|
||||
track->zero_post.start = 0;
|
||||
track->zero_post.length = 0;
|
||||
|
||||
track->mode = MODE_AUDIO;
|
||||
track->sub_mode = SUB_MODE_RW;
|
||||
track->flags = FLAG_NONE;
|
||||
track->isrc = NULL;
|
||||
track->cdtext = cdtext_init();
|
||||
track->rem = rem_new();
|
||||
track->nindex = 0;
|
||||
}
|
||||
|
||||
return track;
|
||||
}
|
||||
|
||||
/*
|
||||
* cd structure functions
|
||||
*/
|
||||
void cd_set_mode(Cd *cd, int mode)
|
||||
{
|
||||
cd->mode = mode;
|
||||
}
|
||||
|
||||
int cd_get_mode(Cd *cd)
|
||||
{
|
||||
return cd->mode;
|
||||
}
|
||||
|
||||
void cd_set_catalog(Cd *cd, char *catalog)
|
||||
{
|
||||
if (cd->catalog)
|
||||
free(cd->catalog);
|
||||
|
||||
cd->catalog = strdup(catalog);
|
||||
}
|
||||
|
||||
void cd_set_cdtextfile(Cd *cd, char *cdtextfile)
|
||||
{
|
||||
if (cd->cdtextfile)
|
||||
free(cd->cdtextfile);
|
||||
|
||||
cd->cdtextfile = strdup(cdtextfile);
|
||||
}
|
||||
|
||||
char *cd_get_cdtextfile(Cd *cd)
|
||||
{
|
||||
return cd->cdtextfile;
|
||||
}
|
||||
|
||||
Cdtext *cd_get_cdtext(Cd *cd)
|
||||
{
|
||||
if (cd != NULL)
|
||||
return cd->cdtext;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Rem*
|
||||
cd_get_rem( Cd* cd)
|
||||
{
|
||||
if (cd != NULL)
|
||||
return cd->rem;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Track *cd_add_track(Cd *cd)
|
||||
{
|
||||
if (MAXTRACK - 1 > cd->ntrack)
|
||||
cd->ntrack++;
|
||||
else
|
||||
fprintf(stderr, "too many tracks\n");
|
||||
|
||||
/* this will reinit last track if there were too many */
|
||||
cd->track[cd->ntrack - 1] = track_init();
|
||||
|
||||
return cd->track[cd->ntrack - 1];
|
||||
}
|
||||
|
||||
|
||||
int cd_get_ntrack(Cd *cd)
|
||||
{
|
||||
return cd->ntrack;
|
||||
}
|
||||
|
||||
Track *cd_get_track(Cd *cd, int i)
|
||||
{
|
||||
if ((0 < i) && (i <= cd->ntrack) && (cd != NULL))
|
||||
return cd->track[i - 1];
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* track structure functions
|
||||
*/
|
||||
|
||||
void track_set_filename(Track *track, char *filename)
|
||||
{
|
||||
if (track->file.name)
|
||||
free(track->file.name);
|
||||
|
||||
track->file.name = strdup(filename);
|
||||
}
|
||||
|
||||
char *track_get_filename(Track *track)
|
||||
{
|
||||
return track->file.name;
|
||||
}
|
||||
|
||||
void track_set_start(Track *track, long start)
|
||||
{
|
||||
track->file.start = start;
|
||||
}
|
||||
|
||||
long track_get_start(Track *track)
|
||||
{
|
||||
return track->file.start;
|
||||
}
|
||||
|
||||
void track_set_length(Track *track, long length)
|
||||
{
|
||||
track->file.length = length;
|
||||
}
|
||||
|
||||
long track_get_length(Track *track)
|
||||
{
|
||||
return track->file.length;
|
||||
}
|
||||
|
||||
void track_set_mode(Track *track, int mode)
|
||||
{
|
||||
track->mode = mode;
|
||||
}
|
||||
|
||||
int track_get_mode(Track *track)
|
||||
{
|
||||
return track->mode;
|
||||
}
|
||||
|
||||
void track_set_sub_mode(Track *track, int sub_mode)
|
||||
{
|
||||
track->sub_mode = sub_mode;
|
||||
}
|
||||
|
||||
int track_get_sub_mode(Track *track)
|
||||
{
|
||||
return track->sub_mode;
|
||||
}
|
||||
|
||||
void track_set_flag(Track *track, int flag)
|
||||
{
|
||||
track->flags |= flag;
|
||||
}
|
||||
|
||||
void track_clear_flag(Track *track, int flag)
|
||||
{
|
||||
track->flags &= ~flag;
|
||||
}
|
||||
|
||||
int track_is_set_flag(Track *track, int flag)
|
||||
{
|
||||
return track->flags & flag;
|
||||
}
|
||||
|
||||
void track_set_zero_pre(Track *track, long length)
|
||||
{
|
||||
track->zero_pre.length = length;
|
||||
}
|
||||
|
||||
long track_get_zero_pre(Track *track)
|
||||
{
|
||||
return track->zero_pre.length;
|
||||
}
|
||||
|
||||
void track_set_zero_post(Track *track, long length)
|
||||
{
|
||||
track->zero_post.length = length;
|
||||
}
|
||||
|
||||
long track_get_zero_post(Track *track)
|
||||
{
|
||||
return track->zero_post.length;
|
||||
}
|
||||
void track_set_isrc(Track *track, char *isrc)
|
||||
{
|
||||
if (track->isrc)
|
||||
free(track->isrc);
|
||||
|
||||
track->isrc = strdup(isrc);
|
||||
}
|
||||
|
||||
char *track_get_isrc(Track *track)
|
||||
{
|
||||
return track->isrc;
|
||||
}
|
||||
|
||||
Cdtext *track_get_cdtext(Track *track)
|
||||
{
|
||||
if (track != NULL)
|
||||
return track->cdtext;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Rem*
|
||||
track_get_rem( Track* track)
|
||||
{
|
||||
if (track != NULL)
|
||||
return track->rem;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void track_add_index(Track *track, long ind)
|
||||
{
|
||||
if (MAXTRACK - 1 > track->nindex)
|
||||
track->nindex++;
|
||||
else
|
||||
fprintf(stderr, "too many indexes\n");
|
||||
|
||||
/* this will overwrite last index if there were too many */
|
||||
track->index[track->nindex - 1] = ind;
|
||||
}
|
||||
|
||||
int track_get_nindex(Track *track)
|
||||
{
|
||||
return track->nindex;
|
||||
}
|
||||
|
||||
long track_get_index(Track *track, int i)
|
||||
{
|
||||
if ((0 <= i) && (i < track->nindex))
|
||||
return track->index[i];
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*
|
||||
* dump cd information
|
||||
*/
|
||||
static void cd_track_dump(Track *track)
|
||||
{
|
||||
int i;
|
||||
|
||||
printf("zero_pre: %ld\n", track->zero_pre.length);
|
||||
printf("filename: %s\n", track->file.name);
|
||||
printf("start: %ld\n", track->file.start);
|
||||
printf("length: %ld\n", track->file.length);
|
||||
printf("zero_post: %ld\n", track->zero_post.length);
|
||||
printf("mode: %d\n", track->mode);
|
||||
printf("sub_mode: %d\n", track->sub_mode);
|
||||
printf("flags: 0x%x\n", track->flags);
|
||||
printf("isrc: %s\n", track->isrc);
|
||||
printf("indexes: %d\n", track->nindex);
|
||||
|
||||
for (i = 0; i < track->nindex; ++i)
|
||||
printf("index %d: %ld\n", i, track->index[i]);
|
||||
|
||||
if (NULL != track->cdtext) {
|
||||
printf("cdtext:\n");
|
||||
cdtext_dump(track->cdtext, 1);
|
||||
}
|
||||
|
||||
if (track->rem != NULL)
|
||||
{
|
||||
fprintf(stdout, "rem:\n");
|
||||
rem_dump(track->rem);
|
||||
}
|
||||
}
|
||||
|
||||
void cd_dump(Cd *cd)
|
||||
{
|
||||
int i;
|
||||
|
||||
printf("Disc Info\n");
|
||||
printf("mode: %d\n", cd->mode);
|
||||
printf("catalog: %s\n", cd->catalog);
|
||||
printf("cdtextfile: %s\n", cd->cdtextfile);
|
||||
if (NULL != cd->cdtext) {
|
||||
printf("cdtext:\n");
|
||||
cdtext_dump(cd->cdtext, 0);
|
||||
}
|
||||
|
||||
if (cd->rem != NULL)
|
||||
{
|
||||
fprintf(stdout, "rem:\n");
|
||||
rem_dump(cd->rem);
|
||||
}
|
||||
|
||||
for (i = 0; i < cd->ntrack; ++i) {
|
||||
printf("Track %d Info\n", i + 1);
|
||||
cd_track_dump(cd->track[i]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,171 @@
|
||||
/*
|
||||
* Copyright (c) 2004, 2005, 2006, 2007, Svend Sorensen
|
||||
* Copyright (c) 2009, 2010 Jochen Keil
|
||||
* For license terms, see the file COPYING in this distribution.
|
||||
*/
|
||||
|
||||
/* references: MMC-3 draft revsion - 10g */
|
||||
|
||||
#ifndef CD_H
|
||||
#define CD_H
|
||||
|
||||
#include "cdtext.h"
|
||||
#include "rem.h"
|
||||
|
||||
#define MAXTRACK 99 /* Red Book track limit */
|
||||
#define MAXINDEX 99 /* Red Book index limit */
|
||||
|
||||
/*
|
||||
* disc modes
|
||||
* DATA FORM OF MAIN DATA (5.29.2.8)
|
||||
*/
|
||||
enum DiscMode {
|
||||
MODE_CD_DA, /* CD-DA */
|
||||
MODE_CD_ROM, /* CD-ROM mode 1 */
|
||||
MODE_CD_ROM_XA /* CD-ROM XA and CD-I */
|
||||
};
|
||||
|
||||
/*
|
||||
* track modes
|
||||
* 5.29.2.8 DATA FORM OF MAIN DATA
|
||||
* Table 350 - Data Block Type Codes
|
||||
*/
|
||||
enum TrackMode {
|
||||
MODE_AUDIO, /* 2352 byte block length */
|
||||
MODE_MODE1, /* 2048 byte block length */
|
||||
MODE_MODE1_RAW, /* 2352 byte block length */
|
||||
MODE_MODE2, /* 2336 byte block length */
|
||||
MODE_MODE2_FORM1, /* 2048 byte block length */
|
||||
MODE_MODE2_FORM2, /* 2324 byte block length */
|
||||
MODE_MODE2_FORM_MIX, /* 2332 byte block length */
|
||||
MODE_MODE2_RAW /* 2352 byte block length */
|
||||
};
|
||||
|
||||
/*
|
||||
* sub-channel mode
|
||||
* 5.29.2.13 Data Form of Sub-channel
|
||||
* NOTE: not sure if this applies to cue files
|
||||
*/
|
||||
enum TrackSubMode {
|
||||
SUB_MODE_RW, /* RAW Data */
|
||||
SUB_MODE_RW_RAW /* PACK DATA (written R-W */
|
||||
};
|
||||
|
||||
/*
|
||||
* track flags
|
||||
* Q Sub-channel Control Field (4.2.3.3, 5.29.2.2)
|
||||
*/
|
||||
enum TrackFlag {
|
||||
FLAG_NONE = 0x00, /* no flags set */
|
||||
FLAG_PRE_EMPHASIS = 0x01, /* audio recorded with pre-emphasis */
|
||||
FLAG_COPY_PERMITTED = 0x02, /* digital copy permitted */
|
||||
FLAG_DATA = 0x04, /* data track */
|
||||
FLAG_FOUR_CHANNEL = 0x08, /* 4 audio channels */
|
||||
FLAG_SCMS = 0x10, /* SCMS (not Q Sub-ch.) (5.29.2.7) */
|
||||
FLAG_ANY = 0xff /* any flags set */
|
||||
};
|
||||
|
||||
enum DataType {
|
||||
DATA_AUDIO,
|
||||
DATA_DATA,
|
||||
DATA_FIFO,
|
||||
DATA_ZERO
|
||||
};
|
||||
|
||||
/* ADTs */
|
||||
typedef struct Cd Cd;
|
||||
typedef struct Track Track;
|
||||
|
||||
|
||||
/* return pointer to CD structure */
|
||||
Cd *cd_init(void);
|
||||
|
||||
Track *track_init(void);
|
||||
|
||||
void track_delete(struct Track* track);
|
||||
|
||||
void cd_delete(struct Cd* cd);
|
||||
|
||||
void cd_dump(Cd *cd);
|
||||
|
||||
/*
|
||||
* Cd functions
|
||||
*/
|
||||
|
||||
void cd_set_mode(Cd *cd, int mode);
|
||||
int cd_get_mode(Cd *cd);
|
||||
|
||||
void cd_set_catalog(Cd *cd, char *catalog);
|
||||
char *cd_get_catalog(Cd *cd);
|
||||
|
||||
void cd_set_cdtextfile(Cd *cd, char *cdtextfile);
|
||||
char *cd_get_cdtextfile(Cd *cd);
|
||||
|
||||
/*
|
||||
* return pointer to cd's Cdtext
|
||||
*/
|
||||
Cdtext *cd_get_cdtext(Cd *cd);
|
||||
|
||||
Rem* cd_get_rem(Cd* cd);
|
||||
|
||||
/*
|
||||
* add a new track to cd, increment number of tracks
|
||||
* and return pointer to new track
|
||||
*/
|
||||
Track *cd_add_track(Cd *cd);
|
||||
|
||||
/*
|
||||
* return number of tracks in cd
|
||||
*/
|
||||
int cd_get_ntrack(Cd *cd);
|
||||
|
||||
Track *cd_get_track(Cd *cd, int i);
|
||||
|
||||
/*
|
||||
* Track functions
|
||||
*/
|
||||
|
||||
/* filename of data file */
|
||||
void track_set_filename(Track *track, char *filename);
|
||||
char *track_get_filename(Track *track);
|
||||
|
||||
/* track start is starting position in data file */
|
||||
void track_set_start(Track *track, long start);
|
||||
long track_get_start(Track *track);
|
||||
|
||||
/* track length is length of data file to use */
|
||||
void track_set_length(Track *track, long length);
|
||||
long track_get_length(Track *track);
|
||||
|
||||
/* see enum TrackMode */
|
||||
void track_set_mode(Track *track, int mode);
|
||||
int track_get_mode(Track *track);
|
||||
|
||||
/* see enum TrackSubMode */
|
||||
void track_set_sub_mode(Track *track, int sub_mode);
|
||||
int track_get_sub_mode(Track *track);
|
||||
|
||||
/* see enum TrackFlag */
|
||||
void track_set_flag(Track *track, int flag);
|
||||
void track_clear_flag(Track *track, int flag);
|
||||
int track_is_set_flag(Track *track, int flag);
|
||||
|
||||
/* zero data pregap */
|
||||
void track_set_zero_pre(Track *track, long length);
|
||||
long track_get_zero_pre(Track *track);
|
||||
|
||||
/* zero data postgap */
|
||||
void track_set_zero_post(Track *track, long length);
|
||||
long track_get_zero_post(Track *track);
|
||||
|
||||
void track_set_isrc(Track *track, char *isrc);
|
||||
char *track_get_isrc(Track *track);
|
||||
|
||||
Cdtext *track_get_cdtext(Track *track);
|
||||
|
||||
Rem* track_get_rem(Track* track);
|
||||
|
||||
void track_add_index(Track *track, long index);
|
||||
int track_get_nindex(Track *track);
|
||||
long track_get_index(Track *track, int i);
|
||||
#endif
|
||||
@@ -0,0 +1,167 @@
|
||||
/*
|
||||
* Copyright (c) 2004, 2005, 2006, 2007, Svend Sorensen
|
||||
* Copyright (c) 2009, 2010 Jochen Keil
|
||||
* For license terms, see the file COPYING in this distribution.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "cdtext.h"
|
||||
|
||||
struct Cdtext {
|
||||
int pti;
|
||||
int format;
|
||||
char *value;
|
||||
};
|
||||
|
||||
Cdtext *cdtext_init(void)
|
||||
{
|
||||
Cdtext *new_cdtext = NULL;
|
||||
|
||||
Cdtext cdtext[] = {
|
||||
{PTI_TITLE, FORMAT_CHAR, NULL},
|
||||
{PTI_PERFORMER, FORMAT_CHAR, NULL},
|
||||
{PTI_SONGWRITER, FORMAT_CHAR, NULL},
|
||||
{PTI_COMPOSER, FORMAT_CHAR, NULL},
|
||||
{PTI_ARRANGER, FORMAT_CHAR, NULL},
|
||||
{PTI_MESSAGE, FORMAT_CHAR, NULL},
|
||||
{PTI_DISC_ID, FORMAT_BINARY, NULL},
|
||||
{PTI_GENRE, FORMAT_BINARY, NULL},
|
||||
{PTI_TOC_INFO1, FORMAT_BINARY, NULL},
|
||||
{PTI_TOC_INFO2, FORMAT_BINARY, NULL},
|
||||
{PTI_RESERVED1, FORMAT_CHAR, NULL},
|
||||
{PTI_RESERVED2, FORMAT_CHAR, NULL},
|
||||
{PTI_RESERVED3, FORMAT_CHAR, NULL},
|
||||
{PTI_RESERVED4, FORMAT_CHAR, NULL},
|
||||
{PTI_UPC_ISRC, FORMAT_CHAR, NULL},
|
||||
{PTI_SIZE_INFO, FORMAT_BINARY, NULL},
|
||||
{PTI_END, FORMAT_CHAR, NULL}
|
||||
};
|
||||
|
||||
new_cdtext = (Cdtext *) calloc (sizeof (cdtext) / sizeof (Cdtext), sizeof (Cdtext));
|
||||
if (NULL == new_cdtext)
|
||||
fprintf (stderr, "problem allocating memory\n");
|
||||
else
|
||||
memcpy (new_cdtext, cdtext, sizeof(cdtext));
|
||||
|
||||
return new_cdtext;
|
||||
}
|
||||
|
||||
void cdtext_delete(Cdtext *cdtext)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (NULL != cdtext) {
|
||||
for (i = 0; PTI_END != cdtext[i].pti; i++)
|
||||
{
|
||||
free (cdtext[i].value);
|
||||
}
|
||||
free (cdtext);
|
||||
}
|
||||
}
|
||||
|
||||
/* return 0 if there is no cdtext, returns non-zero otherwise */
|
||||
int cdtext_is_empty(Cdtext *cdtext)
|
||||
{
|
||||
for (; PTI_END != cdtext->pti; cdtext++)
|
||||
if (NULL != cdtext->value)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* sets cdtext's pti entry to field */
|
||||
void cdtext_set(int pti, char *value, Cdtext *cdtext)
|
||||
{
|
||||
if (NULL != value) /* don't pass NULL to strdup */
|
||||
for (; PTI_END != cdtext->pti; cdtext++)
|
||||
if (pti == cdtext->pti) {
|
||||
free (cdtext->value);
|
||||
cdtext->value = strdup (value);
|
||||
}
|
||||
}
|
||||
|
||||
/* returns value for pti, NULL if pti is not found */
|
||||
char *cdtext_get(int pti, Cdtext *cdtext)
|
||||
{
|
||||
for (; PTI_END != cdtext->pti; cdtext++)
|
||||
if (pti == cdtext->pti)
|
||||
return cdtext->value;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char *cdtext_get_key(int pti, int istrack)
|
||||
{
|
||||
const char *key = NULL;
|
||||
|
||||
switch (pti) {
|
||||
case PTI_TITLE:
|
||||
key = "TITLE";
|
||||
break;
|
||||
case PTI_PERFORMER:
|
||||
key = "PERFORMER";
|
||||
break;
|
||||
case PTI_SONGWRITER:
|
||||
key = "SONGWRITER";
|
||||
break;
|
||||
case PTI_COMPOSER:
|
||||
key = "COMPOSER";
|
||||
break;
|
||||
case PTI_ARRANGER:
|
||||
key = "ARRANGER";
|
||||
break;
|
||||
case PTI_MESSAGE:
|
||||
key = "MESSAGE";
|
||||
break;
|
||||
case PTI_DISC_ID:
|
||||
key = "DISC_ID";
|
||||
break;
|
||||
case PTI_GENRE:
|
||||
key = "GENRE";
|
||||
break;
|
||||
case PTI_TOC_INFO1:
|
||||
key = "TOC_INFO1";
|
||||
break;
|
||||
case PTI_TOC_INFO2:
|
||||
key = "TOC_INFO1";
|
||||
break;
|
||||
case PTI_RESERVED1:
|
||||
/* reserved */
|
||||
break;
|
||||
case PTI_RESERVED2:
|
||||
/* reserved */
|
||||
break;
|
||||
case PTI_RESERVED3:
|
||||
/* reserved */
|
||||
break;
|
||||
case PTI_RESERVED4:
|
||||
/* reserved */
|
||||
break;
|
||||
case PTI_UPC_ISRC:
|
||||
if (0 == istrack)
|
||||
key = "UPC_EAN";
|
||||
else
|
||||
key = "ISRC";
|
||||
break;
|
||||
case PTI_SIZE_INFO:
|
||||
key = "SIZE_INFO";
|
||||
break;
|
||||
}
|
||||
|
||||
return key;
|
||||
}
|
||||
|
||||
void cdtext_dump(Cdtext *cdtext, int istrack)
|
||||
{
|
||||
int pti;
|
||||
char *value = NULL;
|
||||
|
||||
for (pti = 0; PTI_END != pti; pti++) {
|
||||
if (NULL != (value = cdtext_get(pti, cdtext))) {
|
||||
printf("%s: ", cdtext_get_key(pti, istrack));
|
||||
printf("%s\n", value);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
* Copyright (c) 2004, 2005, 2006, 2007, Svend Sorensen
|
||||
* Copyright (c) 2009, 2010 Jochen Keil
|
||||
* For license terms, see the file COPYING in this distribution.
|
||||
*/
|
||||
|
||||
/* references: MMC-3 draft revsion - 10g */
|
||||
|
||||
#ifndef CDTEXT_H
|
||||
#define CDTEXT_H
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
/* cdtext pack type indicators */
|
||||
enum Pti {
|
||||
PTI_TITLE, /* title of album or track titles */
|
||||
PTI_PERFORMER, /* name(s) of the performer(s) */
|
||||
PTI_SONGWRITER, /* name(s) of the songwriter(s) */
|
||||
PTI_COMPOSER, /* name(s) of the composer(s) */
|
||||
PTI_ARRANGER, /* name(s) of the arranger(s) */
|
||||
PTI_MESSAGE, /* message(s) from the content provider and/or artist */
|
||||
PTI_DISC_ID, /* (binary) disc identification information */
|
||||
PTI_GENRE, /* (binary) genre identification and genre information */
|
||||
PTI_TOC_INFO1, /* (binary) table of contents information */
|
||||
PTI_TOC_INFO2, /* (binary) second table of contents information */
|
||||
PTI_RESERVED1, /* reserved */
|
||||
PTI_RESERVED2, /* reserved */
|
||||
PTI_RESERVED3, /* reserved */
|
||||
PTI_RESERVED4, /* reserved for content provider only */
|
||||
PTI_UPC_ISRC, /* UPC/EAN code of the album and ISRC code of each track */
|
||||
PTI_SIZE_INFO, /* (binary) size information of the block */
|
||||
PTI_END /* terminating PTI (for stepping through PTIs) */
|
||||
};
|
||||
|
||||
enum PtiFormat {
|
||||
FORMAT_CHAR, /* single or double byte character string */
|
||||
FORMAT_BINARY /* binary data */
|
||||
};
|
||||
|
||||
typedef struct Cdtext Cdtext;
|
||||
|
||||
/* return a pointer to a new Cdtext */
|
||||
Cdtext *cdtext_init(void);
|
||||
|
||||
/* release a Cdtext */
|
||||
void cdtext_delete(Cdtext *cdtext);
|
||||
|
||||
/* returns non-zero if there are no CD-TEXT fields set, zero otherwise */
|
||||
int cdtext_is_empty(Cdtext *cdtext);
|
||||
|
||||
/* set CD-TEXT field to value for PTI pti */
|
||||
void cdtext_set(int pti, char *value, Cdtext *cdtext);
|
||||
|
||||
/* returns pointer to CD-TEXT value for PTI pti */
|
||||
char *cdtext_get(int pti, Cdtext *cdtext);
|
||||
|
||||
/*
|
||||
* returns appropriate string for PTI pti
|
||||
* if istrack is zero, UPC/EAN string will be returned for PTI_UPC_ISRC
|
||||
* othwise ISRC string will be returned
|
||||
*/
|
||||
const char *cdtext_get_key(int pti, int istrack);
|
||||
|
||||
/*
|
||||
* dump all cdtext info
|
||||
* in human readable format (for debugging)
|
||||
*/
|
||||
void cdtext_dump(Cdtext *cdtext, int istrack);
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,163 @@
|
||||
|
||||
/* A Bison parser, made by GNU Bison 2.4.1. */
|
||||
|
||||
/* Skeleton interface for Bison's Yacc-like parsers in C
|
||||
|
||||
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* As a special exception, you may create a larger work that contains
|
||||
part or all of the Bison parser skeleton and distribute that work
|
||||
under terms of your choice, so long as that work isn't itself a
|
||||
parser generator using the skeleton or a modified version thereof
|
||||
as a parser skeleton. Alternatively, if you modify or redistribute
|
||||
the parser skeleton itself, you may (at your option) remove this
|
||||
special exception, which will cause the skeleton and the resulting
|
||||
Bison output files to be licensed under the GNU General Public
|
||||
License without this special exception.
|
||||
|
||||
This special exception was added by the Free Software Foundation in
|
||||
version 2.2 of Bison. */
|
||||
|
||||
|
||||
/* Tokens. */
|
||||
#ifndef YYTOKENTYPE
|
||||
# define YYTOKENTYPE
|
||||
/* Put the tokens into the symbol table, so that GDB and other debuggers
|
||||
know about them. */
|
||||
enum yytokentype {
|
||||
NUMBER = 258,
|
||||
STRING = 259,
|
||||
CATALOG = 260,
|
||||
CDTEXTFILE = 261,
|
||||
FFILE = 262,
|
||||
BINARY = 263,
|
||||
MOTOROLA = 264,
|
||||
AIFF = 265,
|
||||
WAVE = 266,
|
||||
MP3 = 267,
|
||||
TRACK = 268,
|
||||
AUDIO = 269,
|
||||
MODE1_2048 = 270,
|
||||
MODE1_2352 = 271,
|
||||
MODE2_2336 = 272,
|
||||
MODE2_2048 = 273,
|
||||
MODE2_2342 = 274,
|
||||
MODE2_2332 = 275,
|
||||
MODE2_2352 = 276,
|
||||
TRACK_ISRC = 277,
|
||||
FLAGS = 278,
|
||||
PRE = 279,
|
||||
DCP = 280,
|
||||
FOUR_CH = 281,
|
||||
SCMS = 282,
|
||||
PREGAP = 283,
|
||||
INDEX = 284,
|
||||
POSTGAP = 285,
|
||||
TITLE = 286,
|
||||
PERFORMER = 287,
|
||||
SONGWRITER = 288,
|
||||
COMPOSER = 289,
|
||||
ARRANGER = 290,
|
||||
MESSAGE = 291,
|
||||
DISC_ID = 292,
|
||||
GENRE = 293,
|
||||
TOC_INFO1 = 294,
|
||||
TOC_INFO2 = 295,
|
||||
UPC_EAN = 296,
|
||||
ISRC = 297,
|
||||
SIZE_INFO = 298,
|
||||
DATE = 299,
|
||||
REPLAYGAIN_ALBUM_GAIN = 300,
|
||||
REPLAYGAIN_ALBUM_PEAK = 301,
|
||||
REPLAYGAIN_TRACK_GAIN = 302,
|
||||
REPLAYGAIN_TRACK_PEAK = 303
|
||||
};
|
||||
#endif
|
||||
/* Tokens. */
|
||||
#define NUMBER 258
|
||||
#define STRING 259
|
||||
#define CATALOG 260
|
||||
#define CDTEXTFILE 261
|
||||
#define FFILE 262
|
||||
#define BINARY 263
|
||||
#define MOTOROLA 264
|
||||
#define AIFF 265
|
||||
#define WAVE 266
|
||||
#define MP3 267
|
||||
#define TRACK 268
|
||||
#define AUDIO 269
|
||||
#define MODE1_2048 270
|
||||
#define MODE1_2352 271
|
||||
#define MODE2_2336 272
|
||||
#define MODE2_2048 273
|
||||
#define MODE2_2342 274
|
||||
#define MODE2_2332 275
|
||||
#define MODE2_2352 276
|
||||
#define TRACK_ISRC 277
|
||||
#define FLAGS 278
|
||||
#define PRE 279
|
||||
#define DCP 280
|
||||
#define FOUR_CH 281
|
||||
#define SCMS 282
|
||||
#define PREGAP 283
|
||||
#define INDEX 284
|
||||
#define POSTGAP 285
|
||||
#define TITLE 286
|
||||
#define PERFORMER 287
|
||||
#define SONGWRITER 288
|
||||
#define COMPOSER 289
|
||||
#define ARRANGER 290
|
||||
#define MESSAGE 291
|
||||
#define DISC_ID 292
|
||||
#define GENRE 293
|
||||
#define TOC_INFO1 294
|
||||
#define TOC_INFO2 295
|
||||
#define UPC_EAN 296
|
||||
#define ISRC 297
|
||||
#define SIZE_INFO 298
|
||||
#define DATE 299
|
||||
#define REPLAYGAIN_ALBUM_GAIN 300
|
||||
#define REPLAYGAIN_ALBUM_PEAK 301
|
||||
#define REPLAYGAIN_TRACK_GAIN 302
|
||||
#define REPLAYGAIN_TRACK_PEAK 303
|
||||
|
||||
|
||||
|
||||
|
||||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||
typedef union YYSTYPE
|
||||
{
|
||||
|
||||
/* Line 1676 of yacc.c */
|
||||
#line 59 "cue_parser.y"
|
||||
|
||||
long ival;
|
||||
char *sval;
|
||||
|
||||
|
||||
|
||||
/* Line 1676 of yacc.c */
|
||||
#line 155 "cue_parser.h"
|
||||
} YYSTYPE;
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||||
# define YYSTYPE_IS_DECLARED 1
|
||||
#endif
|
||||
|
||||
extern YYSTYPE yylval;
|
||||
|
||||
|
||||
@@ -0,0 +1,352 @@
|
||||
%{
|
||||
/*
|
||||
* Copyright (c) 2004, 2005, 2006, 2007, Svend Sorensen
|
||||
* Copyright (c) 2009, 2010 Jochen Keil
|
||||
* For license terms, see the file COPYING in this distribution.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "cd.h"
|
||||
#include "time.h"
|
||||
|
||||
#ifdef YY_BUF_SIZE
|
||||
#undef YY_BUF_SIZE
|
||||
#endif
|
||||
#define YY_BUF_SIZE 16384
|
||||
|
||||
#define YYDEBUG 1
|
||||
|
||||
char fnamebuf[PARSER_BUFFER];
|
||||
|
||||
/* debugging */
|
||||
//int yydebug = 1;
|
||||
|
||||
extern int yylineno;
|
||||
extern FILE* yyin;
|
||||
|
||||
static Cd *cd = NULL;
|
||||
static Track *track = NULL;
|
||||
static Track *prev_track = NULL;
|
||||
static Cdtext *cdtext = NULL;
|
||||
static Rem *rem = NULL;
|
||||
static char *prev_filename = NULL; /* last file in or before last track */
|
||||
static char *cur_filename = NULL; /* last file in the last track */
|
||||
static char *new_filename = NULL; /* last file in this track */
|
||||
|
||||
/* lexer interface */
|
||||
typedef struct yy_buffer_state* YY_BUFFER_STATE;
|
||||
|
||||
int yylex(void);
|
||||
void yyerror(const char*);
|
||||
YY_BUFFER_STATE yy_scan_string(const char*);
|
||||
YY_BUFFER_STATE yy_create_buffer(FILE*, int);
|
||||
void yy_switch_to_buffer(YY_BUFFER_STATE);
|
||||
void yy_delete_buffer(YY_BUFFER_STATE);
|
||||
|
||||
/* parser interface */
|
||||
int yyparse(void);
|
||||
Cd *cue_parse_file(FILE *fp);
|
||||
Cd *cue_parse_string(const char*);
|
||||
%}
|
||||
|
||||
%start cuefile
|
||||
|
||||
%union {
|
||||
long ival;
|
||||
char *sval;
|
||||
}
|
||||
|
||||
%token <ival> NUMBER
|
||||
%token <sval> STRING
|
||||
|
||||
/* global (header) */
|
||||
%token CATALOG
|
||||
%token CDTEXTFILE
|
||||
|
||||
%token FFILE
|
||||
%token BINARY
|
||||
%token MOTOROLA
|
||||
%token AIFF
|
||||
%token WAVE
|
||||
%token MP3
|
||||
|
||||
/* track */
|
||||
%token TRACK
|
||||
|
||||
%token <ival> AUDIO
|
||||
%token <ival> MODE1_2048
|
||||
%token <ival> MODE1_2352
|
||||
%token <ival> MODE2_2336
|
||||
%token <ival> MODE2_2048
|
||||
%token <ival> MODE2_2342
|
||||
%token <ival> MODE2_2332
|
||||
%token <ival> MODE2_2352
|
||||
|
||||
/* ISRC is with CD_TEXT */
|
||||
%token TRACK_ISRC
|
||||
|
||||
%token FLAGS
|
||||
%token <ival> PRE
|
||||
%token <ival> DCP
|
||||
%token <ival> FOUR_CH
|
||||
%token <ival> SCMS
|
||||
|
||||
%token PREGAP
|
||||
%token INDEX
|
||||
%token POSTGAP
|
||||
|
||||
/* CD-TEXT */
|
||||
%token <ival> TITLE
|
||||
%token <ival> PERFORMER
|
||||
%token <ival> SONGWRITER
|
||||
%token <ival> COMPOSER
|
||||
%token <ival> ARRANGER
|
||||
%token <ival> MESSAGE
|
||||
%token <ival> DISC_ID
|
||||
%token <ival> GENRE
|
||||
%token <ival> TOC_INFO1
|
||||
%token <ival> TOC_INFO2
|
||||
%token <ival> UPC_EAN
|
||||
%token <ival> ISRC
|
||||
%token <ival> SIZE_INFO
|
||||
|
||||
%type <ival> track_mode
|
||||
%type <ival> track_flag
|
||||
%type <ival> time
|
||||
%type <ival> cdtext_item
|
||||
|
||||
/* REM */
|
||||
%type <ival> rem_item
|
||||
%token <ival> DATE
|
||||
%token <ival> REPLAYGAIN_ALBUM_GAIN
|
||||
%token <ival> REPLAYGAIN_ALBUM_PEAK
|
||||
%token <ival> REPLAYGAIN_TRACK_GAIN
|
||||
%token <ival> REPLAYGAIN_TRACK_PEAK
|
||||
%%
|
||||
|
||||
cuefile
|
||||
: new_cd global_statements track_list
|
||||
;
|
||||
|
||||
new_cd
|
||||
: /* empty */ {
|
||||
cd = cd_init();
|
||||
cdtext = cd_get_cdtext(cd);
|
||||
rem = cd_get_rem(cd);
|
||||
}
|
||||
;
|
||||
|
||||
global_statements
|
||||
: /* empty */
|
||||
| global_statements global_statement
|
||||
;
|
||||
|
||||
global_statement
|
||||
: CATALOG STRING '\n' { cd_set_catalog(cd, $2); }
|
||||
| CDTEXTFILE STRING '\n' { cd_set_cdtextfile(cd, $2); }
|
||||
| cdtext
|
||||
| rem
|
||||
| track_data
|
||||
| error '\n'
|
||||
;
|
||||
|
||||
track_data
|
||||
: FFILE STRING file_format '\n' {
|
||||
if (NULL != new_filename) {
|
||||
yyerror("too many files specified\n");
|
||||
}
|
||||
new_filename = strncpy(fnamebuf, $2, sizeof(fnamebuf));
|
||||
new_filename[strlen(new_filename)] = '\0';
|
||||
}
|
||||
;
|
||||
|
||||
track_list
|
||||
: track
|
||||
| track_list track
|
||||
;
|
||||
|
||||
track
|
||||
: new_track track_def track_statements
|
||||
;
|
||||
|
||||
file_format
|
||||
: BINARY
|
||||
| MOTOROLA
|
||||
| AIFF
|
||||
| WAVE
|
||||
| MP3
|
||||
;
|
||||
|
||||
new_track
|
||||
: /*empty */ {
|
||||
/* save previous track, to later set length */
|
||||
prev_track = track;
|
||||
|
||||
track = cd_add_track(cd);
|
||||
cdtext = track_get_cdtext(track);
|
||||
rem = track_get_rem(track);
|
||||
|
||||
cur_filename = new_filename;
|
||||
if (NULL != cur_filename)
|
||||
prev_filename = cur_filename;
|
||||
|
||||
if (NULL == prev_filename)
|
||||
yyerror("no file specified for track");
|
||||
else
|
||||
track_set_filename(track, prev_filename);
|
||||
|
||||
new_filename = NULL;
|
||||
}
|
||||
;
|
||||
|
||||
track_def
|
||||
: TRACK NUMBER track_mode '\n' {
|
||||
track_set_mode(track, $3);
|
||||
}
|
||||
;
|
||||
|
||||
track_mode
|
||||
: AUDIO
|
||||
| MODE1_2048
|
||||
| MODE1_2352
|
||||
| MODE2_2336
|
||||
| MODE2_2048
|
||||
| MODE2_2342
|
||||
| MODE2_2332
|
||||
| MODE2_2352
|
||||
;
|
||||
|
||||
track_statements
|
||||
: track_statement
|
||||
| track_statements track_statement
|
||||
;
|
||||
|
||||
track_statement
|
||||
: cdtext
|
||||
| rem
|
||||
| FLAGS track_flags '\n'
|
||||
| TRACK_ISRC STRING '\n' { track_set_isrc(track, $2); }
|
||||
| PREGAP time '\n' { track_set_zero_pre(track, $2); }
|
||||
| INDEX NUMBER time '\n' {
|
||||
int i = track_get_nindex(track);
|
||||
long prev_length;
|
||||
|
||||
if (0 == i) {
|
||||
/* first index */
|
||||
track_set_start(track, $3);
|
||||
|
||||
if (NULL != prev_track && NULL == cur_filename) {
|
||||
/* track shares file with previous track */
|
||||
prev_length = $3 - track_get_start(prev_track);
|
||||
track_set_length(prev_track, prev_length);
|
||||
}
|
||||
}
|
||||
|
||||
for (; i <= $2; i++)
|
||||
track_add_index(track, \
|
||||
track_get_zero_pre(track) + $3 \
|
||||
- track_get_start(track));
|
||||
}
|
||||
| POSTGAP time '\n' { track_set_zero_post(track, $2); }
|
||||
| track_data
|
||||
| error '\n'
|
||||
;
|
||||
|
||||
track_flags
|
||||
: /* empty */
|
||||
| track_flags track_flag { track_set_flag(track, $2); }
|
||||
;
|
||||
|
||||
track_flag
|
||||
: PRE
|
||||
| DCP
|
||||
| FOUR_CH
|
||||
| SCMS
|
||||
;
|
||||
|
||||
cdtext
|
||||
: cdtext_item STRING '\n' { cdtext_set ($1, $2, cdtext); }
|
||||
;
|
||||
|
||||
cdtext_item
|
||||
: TITLE
|
||||
| PERFORMER
|
||||
| SONGWRITER
|
||||
| COMPOSER
|
||||
| ARRANGER
|
||||
| MESSAGE
|
||||
| DISC_ID
|
||||
| GENRE
|
||||
| TOC_INFO1
|
||||
| TOC_INFO2
|
||||
| UPC_EAN
|
||||
| ISRC
|
||||
| SIZE_INFO
|
||||
;
|
||||
|
||||
time
|
||||
: NUMBER
|
||||
| NUMBER ':' NUMBER ':' NUMBER { $$ = time_msf_to_frame($1, $3, $5); }
|
||||
;
|
||||
|
||||
rem
|
||||
: rem_item STRING '\n' { rem_set($1, $2, rem); }
|
||||
;
|
||||
|
||||
rem_item
|
||||
: DATE
|
||||
| REPLAYGAIN_ALBUM_GAIN
|
||||
| REPLAYGAIN_ALBUM_PEAK
|
||||
| REPLAYGAIN_TRACK_GAIN
|
||||
| REPLAYGAIN_TRACK_PEAK
|
||||
;
|
||||
%%
|
||||
|
||||
/* lexer interface */
|
||||
|
||||
void yyerror (const char *s)
|
||||
{
|
||||
fprintf(stderr, "%d: %s\n", yylineno, s);
|
||||
}
|
||||
|
||||
Cd *cue_parse_file(FILE *fp)
|
||||
{
|
||||
YY_BUFFER_STATE buffer = NULL;
|
||||
|
||||
yyin = fp;
|
||||
|
||||
buffer = yy_create_buffer(yyin, YY_BUF_SIZE);
|
||||
|
||||
yy_switch_to_buffer(buffer);
|
||||
|
||||
if (0 == yyparse())
|
||||
{
|
||||
yy_delete_buffer(buffer);
|
||||
return cd;
|
||||
}
|
||||
|
||||
yy_delete_buffer(buffer);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Cd *cue_parse_string(const char* string)
|
||||
{
|
||||
YY_BUFFER_STATE buffer = NULL;
|
||||
|
||||
buffer = yy_scan_string(string);
|
||||
|
||||
if (0 == yyparse())
|
||||
{
|
||||
yy_delete_buffer(buffer);
|
||||
return cd;
|
||||
}
|
||||
|
||||
yy_delete_buffer(buffer);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,139 @@
|
||||
%{
|
||||
/*
|
||||
* Copyright (c) 2004, 2005, 2006, 2007, Svend Sorensen
|
||||
* Copyright (c) 2009, 2010 Jochen Keil
|
||||
* For license terms, see the file COPYING in this distribution.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "cd.h"
|
||||
#include "cue_parser.h"
|
||||
|
||||
char buffer[PARSER_BUFFER];
|
||||
|
||||
int yylex(void);
|
||||
%}
|
||||
|
||||
ws [ \t\r]
|
||||
nonws [^ \t\r\n]
|
||||
|
||||
%option yylineno
|
||||
%option noyywrap
|
||||
%option noinput
|
||||
%option nounput
|
||||
|
||||
%s NAME
|
||||
%x REM
|
||||
%x RPG
|
||||
%x SKIP
|
||||
|
||||
%%
|
||||
|
||||
\'([^\']|\\\')*\' |
|
||||
\"([^\"]|\\\")*\" {
|
||||
yylval.sval = strncpy( buffer,
|
||||
++yytext,
|
||||
(yyleng > sizeof(buffer) ? sizeof(buffer) : yyleng));
|
||||
yylval.sval[yyleng - 2] = '\0';
|
||||
BEGIN(INITIAL);
|
||||
return STRING;
|
||||
}
|
||||
|
||||
<NAME>{nonws}+ {
|
||||
yylval.sval = strncpy( buffer,
|
||||
yytext,
|
||||
(yyleng > sizeof(buffer) ? sizeof(buffer) : yyleng));
|
||||
yylval.sval[yyleng] = '\0';
|
||||
BEGIN(INITIAL);
|
||||
return STRING;
|
||||
}
|
||||
|
||||
CATALOG { BEGIN(NAME); return CATALOG; }
|
||||
CDTEXTFILE { BEGIN(NAME); return CDTEXTFILE; }
|
||||
|
||||
FILE { BEGIN(NAME); return FFILE; }
|
||||
BINARY { return BINARY; }
|
||||
MOTOROLA { return MOTOROLA; }
|
||||
AIFF { return AIFF; }
|
||||
WAVE { return WAVE; }
|
||||
MP3 { return MP3; }
|
||||
|
||||
TRACK { return TRACK; }
|
||||
AUDIO { yylval.ival = MODE_AUDIO; return AUDIO; }
|
||||
MODE1\/2048 { yylval.ival = MODE_MODE1; return MODE1_2048; }
|
||||
MODE1\/2352 { yylval.ival = MODE_MODE1_RAW; return MODE1_2352; }
|
||||
MODE2\/2336 { yylval.ival = MODE_MODE2; return MODE2_2336; }
|
||||
MODE2\/2048 { yylval.ival = MODE_MODE2_FORM1; return MODE2_2048; }
|
||||
MODE2\/2342 { yylval.ival = MODE_MODE2_FORM2; return MODE2_2342; }
|
||||
MODE2\/2332 { yylval.ival = MODE_MODE2_FORM_MIX; return MODE2_2332; }
|
||||
MODE2\/2352 { yylval.ival = MODE_MODE2_RAW; return MODE2_2352; }
|
||||
|
||||
FLAGS { return FLAGS; }
|
||||
PRE { yylval.ival = FLAG_PRE_EMPHASIS; return PRE; }
|
||||
DCP { yylval.ival = FLAG_COPY_PERMITTED; return DCP; }
|
||||
4CH { yylval.ival = FLAG_FOUR_CHANNEL; return FOUR_CH; }
|
||||
SCMS { yylval.ival = FLAG_SCMS; return SCMS; }
|
||||
|
||||
PREGAP { return PREGAP; }
|
||||
INDEX { return INDEX; }
|
||||
POSTGAP { return POSTGAP; }
|
||||
|
||||
TITLE { BEGIN(NAME); yylval.ival = PTI_TITLE; return TITLE; }
|
||||
PERFORMER { BEGIN(NAME); yylval.ival = PTI_PERFORMER; return PERFORMER; }
|
||||
SONGWRITER { BEGIN(NAME); yylval.ival = PTI_SONGWRITER; return SONGWRITER; }
|
||||
COMPOSER { BEGIN(NAME); yylval.ival = PTI_COMPOSER; return COMPOSER; }
|
||||
ARRANGER { BEGIN(NAME); yylval.ival = PTI_ARRANGER; return ARRANGER; }
|
||||
MESSAGE { BEGIN(NAME); yylval.ival = PTI_MESSAGE; return MESSAGE; }
|
||||
DISC_ID { BEGIN(NAME); yylval.ival = PTI_DISC_ID; return DISC_ID; }
|
||||
GENRE { BEGIN(NAME); yylval.ival = PTI_GENRE; return GENRE; }
|
||||
TOC_INFO1 { BEGIN(NAME); yylval.ival = PTI_TOC_INFO1; return TOC_INFO1; }
|
||||
TOC_INFO2 { BEGIN(NAME); yylval.ival = PTI_TOC_INFO2; return TOC_INFO2; }
|
||||
UPC_EAN { BEGIN(NAME); yylval.ival = PTI_UPC_ISRC; return UPC_EAN; }
|
||||
ISRC/{ws}+\" { BEGIN(NAME); yylval.ival = PTI_UPC_ISRC; return ISRC; }
|
||||
SIZE_INFO { BEGIN(NAME); yylval.ival = PTI_SIZE_INFO; return SIZE_INFO; }
|
||||
|
||||
ISRC { BEGIN(NAME); return TRACK_ISRC; }
|
||||
|
||||
REM { BEGIN(REM); /* exclusive rules for special exceptions */ }
|
||||
|
||||
<REM>DATE { BEGIN(NAME); yylval.ival = REM_DATE; return DATE; }
|
||||
<REM>REPLAYGAIN_ALBUM_GAIN { BEGIN(RPG); yylval.ival = REM_REPLAYGAIN_ALBUM_GAIN;
|
||||
return REPLAYGAIN_ALBUM_GAIN; }
|
||||
<REM>REPLAYGAIN_ALBUM_PEAK { BEGIN(RPG); yylval.ival = REM_REPLAYGAIN_ALBUM_PEAK;
|
||||
return REPLAYGAIN_ALBUM_PEAK; }
|
||||
<REM>REPLAYGAIN_TRACK_GAIN { BEGIN(RPG); yylval.ival = REM_REPLAYGAIN_TRACK_GAIN;
|
||||
return REPLAYGAIN_TRACK_GAIN; }
|
||||
<REM>REPLAYGAIN_TRACK_PEAK { BEGIN(RPG); yylval.ival = REM_REPLAYGAIN_TRACK_PEAK;
|
||||
return REPLAYGAIN_TRACK_PEAK; }
|
||||
|
||||
<REM>{ws}+ { BEGIN(REM); }
|
||||
<REM>. { BEGIN(REM); }
|
||||
<REM>\n { BEGIN(INITIAL); }
|
||||
|
||||
<RPG>{nonws}+ {
|
||||
yylval.sval = strncpy( buffer,
|
||||
yytext,
|
||||
(yyleng > sizeof(buffer) ? sizeof(buffer) : yyleng));
|
||||
yylval.sval[yyleng] = '\0';
|
||||
BEGIN(SKIP);
|
||||
return STRING;
|
||||
}
|
||||
|
||||
<RPG>{ws}+ { BEGIN(RPG); }
|
||||
|
||||
<SKIP>.*\n { BEGIN(INITIAL); yylineno++; return '\n'; }
|
||||
|
||||
{ws}+ { /* ignore whitespace */ }
|
||||
|
||||
[[:digit:]]+ { yylval.ival = atoi(yytext); return NUMBER; }
|
||||
: { return yytext[0]; }
|
||||
|
||||
^{ws}*\n { yylineno++; /* blank line */ }
|
||||
\n { yylineno++; return '\n'; }
|
||||
. { fprintf(stderr, "bad character '%c'\n", yytext[0]); }
|
||||
|
||||
%%
|
||||
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
* Copyright (c) 2009, 2010 Jochen Keil
|
||||
* For license terms, see the file COPYING in this distribution.
|
||||
*/
|
||||
|
||||
extern "C" {
|
||||
#include "cd.h"
|
||||
|
||||
|
||||
Cd* cue_parse_file(FILE*);
|
||||
Cd* cue_parse_string(const char*);
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
prefix=/usr/local
|
||||
exec_prefix=${prefix}
|
||||
libdir=${exec_prefix}/lib
|
||||
includedir=${prefix}/include/libcue-1.4
|
||||
|
||||
Name: libcue
|
||||
Description: Cuesheet parser library
|
||||
Version: 1.4.0
|
||||
Libs: -L${libdir} -lcue
|
||||
Cflags: -I${includedir}
|
||||
@@ -0,0 +1,10 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@/@LIBCUE_LIBRARY_NAME@-@LIBCUE_API_VERSION@
|
||||
|
||||
Name: libcue
|
||||
Description: Cuesheet parser library
|
||||
Version: @VERSION@
|
||||
Libs: -L${libdir} -lcue
|
||||
Cflags: -I${includedir}
|
||||
@@ -0,0 +1,140 @@
|
||||
/*
|
||||
* Copyright (c) 2009, 2010 Jochen Keil
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Jochen Keil ''AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Jochen Keil BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "rem.h"
|
||||
|
||||
struct Rem {
|
||||
unsigned int cmt;
|
||||
char *value;
|
||||
};
|
||||
|
||||
Rem*
|
||||
rem_new( void)
|
||||
{
|
||||
Rem* new_rem = NULL;
|
||||
|
||||
Rem rem[] = {
|
||||
{REM_DATE, NULL},
|
||||
{REM_REPLAYGAIN_ALBUM_GAIN, NULL},
|
||||
{REM_REPLAYGAIN_ALBUM_PEAK, NULL},
|
||||
{REM_REPLAYGAIN_TRACK_GAIN, NULL},
|
||||
{REM_REPLAYGAIN_TRACK_PEAK, NULL},
|
||||
{REM_END, NULL}
|
||||
};
|
||||
|
||||
/* sizeof(rem) = number of elements in rem[] * sizeof(Rem) */
|
||||
new_rem = (Rem*)calloc(sizeof(rem) / sizeof(Rem), sizeof(Rem));
|
||||
if (new_rem == NULL)
|
||||
fprintf(stderr, "rem_new(): problem allocating memory\n");
|
||||
else
|
||||
memcpy(new_rem, rem, sizeof(rem));
|
||||
|
||||
return new_rem;
|
||||
}
|
||||
|
||||
void
|
||||
rem_free( Rem* rem)
|
||||
{
|
||||
if (rem == NULL)
|
||||
return;
|
||||
|
||||
Rem* ptr = rem;
|
||||
|
||||
do
|
||||
{
|
||||
free(ptr->value);
|
||||
}
|
||||
while ((++ptr)->cmt != REM_END);
|
||||
|
||||
free(rem);
|
||||
}
|
||||
|
||||
int
|
||||
rem_is_emtpy( Rem* rem)
|
||||
{
|
||||
if (rem == NULL)
|
||||
return 1;
|
||||
|
||||
do
|
||||
{
|
||||
if (rem->value != NULL)
|
||||
return 0;
|
||||
} while ((++rem)->cmt != REM_END);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void
|
||||
rem_set( unsigned int cmt,
|
||||
char* value,
|
||||
Rem* rem)
|
||||
{
|
||||
if (rem == NULL || value == NULL)
|
||||
return;
|
||||
|
||||
do
|
||||
{
|
||||
if (rem->cmt == cmt)
|
||||
{
|
||||
free(rem->value);
|
||||
rem->value = strdup(value);
|
||||
return;
|
||||
}
|
||||
} while ((++rem)->cmt != REM_END);
|
||||
}
|
||||
|
||||
char*
|
||||
rem_get( unsigned int cmt,
|
||||
Rem* rem)
|
||||
{
|
||||
if (rem == NULL)
|
||||
return NULL;
|
||||
|
||||
do
|
||||
{
|
||||
if (rem->cmt == cmt)
|
||||
{
|
||||
if (rem->value != NULL)
|
||||
return rem->value;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
} while ((++rem)->cmt != REM_END);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void
|
||||
rem_dump( Rem* rem)
|
||||
{
|
||||
if (rem == NULL)
|
||||
return;
|
||||
|
||||
do
|
||||
{
|
||||
fprintf(stdout, "REM %u: %s\n", rem->cmt, rem->value);
|
||||
} while ((++rem)->cmt != REM_END);
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
* Copyright (c) 2009, 2010 Jochen Keil
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Jochen Keil ''AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Jochen Keil BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef REM_H
|
||||
#define REM_H
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
enum Cmt {
|
||||
REM_DATE, /* date of cd/track */
|
||||
REM_REPLAYGAIN_ALBUM_GAIN,
|
||||
REM_REPLAYGAIN_ALBUM_PEAK,
|
||||
REM_REPLAYGAIN_TRACK_GAIN,
|
||||
REM_REPLAYGAIN_TRACK_PEAK,
|
||||
REM_END /* terminating REM (for stepping through REMs) */
|
||||
};
|
||||
|
||||
typedef struct Rem Rem;
|
||||
|
||||
/**
|
||||
* return new allocated rem struct
|
||||
*/
|
||||
Rem*
|
||||
rem_new( void);
|
||||
|
||||
/**
|
||||
* free rem struct
|
||||
*/
|
||||
void
|
||||
rem_free( Rem*);
|
||||
|
||||
/**
|
||||
* return true if allocated rem struct is empty
|
||||
*/
|
||||
int
|
||||
rem_is_emtpy( Rem*);
|
||||
|
||||
/**
|
||||
* set value of rem comment
|
||||
* @param unsigned int: enum of rem comment
|
||||
*/
|
||||
void
|
||||
rem_set( unsigned int,
|
||||
char*,
|
||||
Rem*);
|
||||
|
||||
/**
|
||||
* return pointer to value for rem comment
|
||||
* @param unsigned int: enum of rem comment
|
||||
*/
|
||||
char*
|
||||
rem_get( unsigned int,
|
||||
Rem*);
|
||||
|
||||
/**
|
||||
* dump all rem comments in human readable form
|
||||
* @param bool: if track: true; else false
|
||||
*/
|
||||
void
|
||||
rem_dump( Rem*);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* time.c -- time functions
|
||||
*
|
||||
* Copyright (C) 2004, 2005, 2006, 2007 Svend Sorensen
|
||||
* For license terms, see the file COPYING in this distribution.
|
||||
*/
|
||||
|
||||
#include "time.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
long time_msf_to_frame(int m, int s, int f)
|
||||
{
|
||||
return (m * 60 + s) * 75 + f;
|
||||
}
|
||||
|
||||
void msf_frame_to_msf(long frame, int *m, int *s, int *f)
|
||||
{
|
||||
*f = frame % 75; /* 0 <= frames <= 74 */
|
||||
frame /= 75;
|
||||
*s = frame % 60; /* 0 <= seconds <= 59 */
|
||||
frame /= 60;
|
||||
*m = frame; /* 0 <= minutes */
|
||||
}
|
||||
|
||||
void time_frame_to_msf(long frame, int *m, int *s, int *f)
|
||||
{
|
||||
*f = frame % 75; /* 0 <= frames <= 74 */
|
||||
frame /= 75;
|
||||
*s = frame % 60; /* 0 <= seconds <= 59 */
|
||||
frame /= 60;
|
||||
*m = frame; /* 0 <= minutes */
|
||||
}
|
||||
|
||||
/* print frame in mm:ss:ff format */
|
||||
char *time_frame_to_mmssff(long f)
|
||||
{
|
||||
static char msf[9];
|
||||
int minutes, seconds, frames;
|
||||
|
||||
msf_frame_to_msf(f, &minutes, &seconds, &frames);
|
||||
sprintf(msf, "%02d:%02d:%02d", minutes, seconds, frames);
|
||||
|
||||
return msf;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* time.h -- time declarations
|
||||
*
|
||||
* Copyright (C) 2004, 2005, 2006, 2007 Svend Sorensen
|
||||
* For license terms, see the file COPYING in this distribution.
|
||||
*/
|
||||
|
||||
#ifndef TIME_H
|
||||
#define TIME_H
|
||||
|
||||
void msf_frame_to_msf(long frame, int *m, int *s, int *f);
|
||||
long time_msf_to_frame(int m, int s, int f);
|
||||
long time_mmssff_to_frame(char *mmssff);
|
||||
void time_frame_to_msf(long frame, int *m, int *s, int *f);
|
||||
char *time_frame_to_mmssff(long f);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1 @@
|
||||
timestamp for config.h
|
||||
@@ -0,0 +1,992 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
// Clio.cpp: implementation of the CClio class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "freedoconfig.h"
|
||||
#include "Clio.h"
|
||||
#include "Madam.h"
|
||||
#include "XBUS.h"
|
||||
#include "arm.h"
|
||||
#include "DSP.h"
|
||||
#include "stdafx.h"
|
||||
|
||||
#define DECREMENT 0x1
|
||||
#define RELOAD 0x2
|
||||
#define CASCADE 0x4
|
||||
#define FLABLODE 0x8
|
||||
|
||||
|
||||
void __fastcall HandleDMA(unsigned int val);
|
||||
|
||||
//#define FIFODBG
|
||||
|
||||
#define RELOAD_VAL 0x10
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma pack(push,1)
|
||||
struct FIFOt{
|
||||
|
||||
unsigned int StartAdr;
|
||||
int StartLen;
|
||||
unsigned int NextAdr;
|
||||
int NextLen;
|
||||
};
|
||||
struct CLIODatum
|
||||
{
|
||||
unsigned int cregs[65536];
|
||||
int DSPW1;
|
||||
int DSPW2;
|
||||
int DSPA;
|
||||
int PTRI[13];
|
||||
int PTRO[4];
|
||||
FIFOt FIFOI[13];
|
||||
FIFOt FIFOO[4];
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
static unsigned int * Mregs;
|
||||
|
||||
static CLIODatum clio;
|
||||
|
||||
#define cregs clio.cregs
|
||||
#define DSPW1 clio.DSPW1
|
||||
#define DSPW2 clio.DSPW2
|
||||
#define DSPA clio.DSPA
|
||||
#define PTRI clio.PTRI
|
||||
#define PTRO clio.PTRO
|
||||
#define FIFOI clio.FIFOI
|
||||
#define FIFOO clio.FIFOO
|
||||
|
||||
#include <memory.h>
|
||||
unsigned int _clio_SaveSize()
|
||||
{
|
||||
return sizeof(CLIODatum);
|
||||
}
|
||||
void _clio_Save(void *buff)
|
||||
{
|
||||
memcpy(buff,&clio,sizeof(CLIODatum));
|
||||
}
|
||||
void _clio_Load(void *buff)
|
||||
{
|
||||
memcpy(&clio,buff,sizeof(CLIODatum));
|
||||
}
|
||||
|
||||
#define CURADR Mregs[base]
|
||||
#define CURLEN Mregs[base+4]
|
||||
#define RLDADR Mregs[base+8]
|
||||
#define RLDLEN Mregs[base+0xc]
|
||||
|
||||
extern int fastrand();
|
||||
|
||||
int _clio_v0line()
|
||||
{
|
||||
return cregs[8]&0x7ff;
|
||||
}
|
||||
|
||||
int _clio_v1line()
|
||||
{
|
||||
return cregs[12]&0x7ff;
|
||||
}
|
||||
|
||||
bool __fastcall _clio_NeedFIQ()
|
||||
{
|
||||
if( (cregs[0x40]&cregs[0x48]) || (cregs[0x60]&cregs[0x68]) ) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void __fastcall _clio_GenerateFiq(unsigned int reason1, unsigned int reason2)
|
||||
{
|
||||
|
||||
cregs[0x40]|=reason1;
|
||||
cregs[0x60]|=reason2;
|
||||
if(cregs[0x60]) cregs[0x40]|=0x80000000; // irq31 if exist irq32 and high
|
||||
|
||||
//if( (cregs[0x40]&cregs[0x48]) || (cregs[0x60]&cregs[0x68]) ) _arm_SetFIQ();
|
||||
/////////////
|
||||
#ifdef DBGFIQ
|
||||
sprintf(str,"FIQ accepted 0x%8.8X 0x%8.8X 0x%8.8X 0x%8.8X\n",reason1,reason2,CClio::Peek(0x48),CClio::Peek(0x68));
|
||||
CDebug::DPrint(str);
|
||||
if( (cregs[0x40]&cregs[0x48]) || (cregs[0x60]&cregs[0x68]) )
|
||||
{
|
||||
sprintf(str,"!!!FIQ decision taken\n");
|
||||
CDebug::DPrint(str);
|
||||
}
|
||||
#endif
|
||||
/////////////
|
||||
}
|
||||
|
||||
#include "freedocore.h"
|
||||
extern _ext_Interface io_interface;
|
||||
//extern AString str;
|
||||
void __fastcall _clio_SetTimers(uint32 v200, uint32 v208);
|
||||
void __fastcall _clio_ClearTimers(uint32 v204, uint32 v20c);
|
||||
int __fastcall _clio_Poke(unsigned int addr, unsigned int val)
|
||||
{
|
||||
int base;
|
||||
int i;
|
||||
|
||||
//if(addr==0x200 || addr==0x204 || addr==0x208 || addr==0x20c || (addr>=0x100 && addr<=0x17c) || addr==0x220)io_interface(EXT_DEBUG_PRINT,(void*)str.print("CLIO Write[0x%X] = 0x%8.8X",addr,val).CStr());
|
||||
//if(addr==0x34 || addr==0x30)io_interface(EXT_DEBUG_PRINT,(void*)str.print("CLIO Write[0x%X] = 0x%8.8X",addr,val).CStr());
|
||||
if( (addr& ~0x2C) == 0x40 ) // 0x40..0x4C, 0x60..0x6C case
|
||||
{
|
||||
if(addr==0x40)
|
||||
{
|
||||
cregs[0x40]|=val;
|
||||
if(cregs[0x60]) cregs[0x40]|=0x80000000;
|
||||
//if(cregs[0x40]&cregs[0x48]) _arm_SetFIQ();
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x44)
|
||||
{
|
||||
cregs[0x40]&=~val;
|
||||
if(!cregs[0x60]) cregs[0x40]&=~0x80000000;
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x48)
|
||||
{
|
||||
cregs[0x48]|=val;
|
||||
//if(cregs[0x40]&cregs[0x48]) _arm_SetFIQ();
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x4c)
|
||||
{
|
||||
cregs[0x48]&=~val;
|
||||
cregs[0x48]|=0x80000000; // always one for irq31
|
||||
return 0;
|
||||
}
|
||||
/*else if(addr==0x50)
|
||||
{
|
||||
cregs[0x50]|=val&0x3fff0000;
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x54)
|
||||
{
|
||||
cregs[0x50]&=~val;
|
||||
return 0;
|
||||
} */
|
||||
else if(addr==0x60)
|
||||
{
|
||||
cregs[0x60]|=val;
|
||||
if(cregs[0x60]) cregs[0x40]|=0x80000000;
|
||||
//if(cregs[0x60]&cregs[0x68]) _arm_SetFIQ();
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x64)
|
||||
{
|
||||
cregs[0x60]&=~val;
|
||||
if(!cregs[0x60]) cregs[0x40]&=~0x80000000;
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x68)
|
||||
{
|
||||
cregs[0x68]|=val;
|
||||
//if(cregs[0x60]&cregs[0x68]) _arm_SetFIQ();
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x6c)
|
||||
{
|
||||
cregs[0x68]&=~val;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else if(addr==0x84)
|
||||
{
|
||||
//temp=val&0xf0;
|
||||
//temp=temp>>4;
|
||||
//val&=0x0f;
|
||||
|
||||
//cregs[0x84]&=~temp;
|
||||
//cregs[0x84]|=val;
|
||||
cregs[0x84]=val&0xf;
|
||||
SelectROM((val&4)? 1:0 );
|
||||
return 0;
|
||||
}else if(addr==0x300)
|
||||
{ //clear down the fifos and stop them
|
||||
base=0;
|
||||
cregs[0x304]&=~val;
|
||||
|
||||
for(i=0;i<13;i++)
|
||||
{
|
||||
if(val&(1<<i))
|
||||
{
|
||||
base=0x400+(i<<4);
|
||||
RLDADR=CURADR=0;
|
||||
RLDLEN=CURLEN=0;
|
||||
_clio_SetFIFO(base,0);
|
||||
_clio_SetFIFO(base+4,0);
|
||||
_clio_SetFIFO(base+8,0);
|
||||
_clio_SetFIFO(base+0xc,0);
|
||||
val&=~(1<<i);
|
||||
PTRI[i]=0;
|
||||
}
|
||||
|
||||
}
|
||||
{
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
if(val&(1<<(i+16)))
|
||||
{
|
||||
base=0x500+(i<<4);
|
||||
RLDADR=CURADR=0;
|
||||
RLDLEN=CURLEN=0;
|
||||
_clio_SetFIFO(base,0);
|
||||
_clio_SetFIFO(base+4,0);
|
||||
_clio_SetFIFO(base+8,0);
|
||||
_clio_SetFIFO(base+0xc,0);
|
||||
|
||||
val&=~(1<<(i+16));
|
||||
PTRO[i]=0;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
else if(addr==0x304) // Dma Starter!!!!! P/A !!!! need to create Handler.
|
||||
{
|
||||
|
||||
//if(val&0x00100000)
|
||||
//{
|
||||
HandleDMA(val);
|
||||
// cregs[0x304]&=~0x00100000;
|
||||
//}
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x308) //Dma Stopper!!!!
|
||||
{
|
||||
cregs[0x304]&=~val;
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x400) //XBUS direction
|
||||
{
|
||||
if(val&0x800)
|
||||
return 0;
|
||||
else
|
||||
{
|
||||
cregs[0x400]=val;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else if((addr>=0x500) && (addr<0x540))
|
||||
{
|
||||
_xbus_SetSEL(val);
|
||||
|
||||
return 0;
|
||||
}
|
||||
else if((addr>=0x540) && (addr<0x580))
|
||||
{
|
||||
#ifdef DBGXBUS
|
||||
sprintf(str,"XBPC : 0x%8.8x :",RegRead(15));
|
||||
CDebug::DPrint(str);
|
||||
#endif
|
||||
_xbus_SetPoll(val);
|
||||
return 0;
|
||||
}
|
||||
else if((addr>=0x580) && (addr<0x5c0))
|
||||
{
|
||||
_xbus_SetCommandFIFO(val); // on FIFO Filled execute the command
|
||||
return 0;
|
||||
}
|
||||
else if((addr>=0x5c0) && (addr<0x600))
|
||||
{
|
||||
_xbus_SetDataFIFO(val); // on FIFO Filled execute the command
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x28)
|
||||
{
|
||||
cregs[addr]=val;
|
||||
if(val==0x30)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}else if((addr>=0x1800)&&(addr<=0x1fff))//0x0340 1800 … 0x0340 1BFF && 0x0340 1C00 … 0x0340 1FFF
|
||||
{
|
||||
addr&=~0x400; //mirrors
|
||||
DSPW1=val>>16;
|
||||
DSPW2=val&0xffff;
|
||||
DSPA=(addr-0x1800)>>1;
|
||||
//sprintf(str,"0x%8.8X : 2x1NWRITE 0x%3.3X 0x%4.4X\n",GetPC(),DSPA,DSPW1);
|
||||
//CDebug::DPrint(str);
|
||||
//sprintf(str,"0x%8.8X : 2x2NWRITE 0x%3.3X 0x%4.4X\n",GetPC(),DSPA+1,DSPW2);
|
||||
//CDebug::DPrint(str);
|
||||
|
||||
|
||||
_dsp_WriteMemory(DSPA,DSPW1);
|
||||
_dsp_WriteMemory(DSPA+1,DSPW2);
|
||||
return 0;
|
||||
//DSPNRAMWrite 2 DSPW per 1ARMW
|
||||
}else if((addr>=0x2000)&&(addr<=0x2fff))
|
||||
{
|
||||
addr&=~0x800;//mirrors
|
||||
DSPW1=val&0xffff;
|
||||
DSPA=(addr-0x2000)>>2;
|
||||
//sprintf(str,"0x%8.8X : 1xNWRITE 0x%3.3X 0x%4.4X\n",GetPC(),DSPA,DSPW1);
|
||||
//CDebug::DPrint(str);
|
||||
|
||||
_dsp_WriteMemory(DSPA,DSPW1);
|
||||
return 0;
|
||||
//DSPNRAMWrite 1 DSPW per 1ARMW
|
||||
}else if((addr>=0x3000)&&(addr<=0x33ff)) //0x0340 3000 … 0x0340 33FF
|
||||
{
|
||||
DSPA=(addr-0x3000)>>1;
|
||||
DSPA&=0xff;
|
||||
DSPW1=val>>16;
|
||||
DSPW2=val&0xffff;
|
||||
_dsp_WriteIMem(DSPA,DSPW1);
|
||||
_dsp_WriteIMem(DSPA+1,DSPW2);
|
||||
/* printf("#ARM 2IWRITE1 0x%3.3X<=0x%4.4X\n",DSPA,DSPW1);
|
||||
printf("#ARM 2IWRITE2 0x%3.3X<=0x%4.4X\n",DSPA+1,DSPW2);
|
||||
printf("#ARM word %8.8x\n-----------------------\n",val);*/
|
||||
return 0;
|
||||
//DSPEIRam 2 DSPW per 1ARMW
|
||||
}else if((addr>=0x3400)&&(addr<=0x37ff))//0x0340 3400 … 0x0340 37FF
|
||||
{
|
||||
DSPA=(addr-0x3400)>>2;
|
||||
DSPA&=0xff;
|
||||
//if(DSPA>0x6f)
|
||||
//printf("##Strange coeff write -- 0x%3.3X<=0x%4.4X\n",DSPA,DSPW1);
|
||||
DSPW1=val&0xffff;
|
||||
_dsp_WriteIMem(DSPA,DSPW1);
|
||||
/* printf("#ARM IWRITE 0x%3.3X<=0x%4.4X\n",DSPA,DSPW1);
|
||||
printf("#ARM word %8.8x\n-----------------------\n",val);*/
|
||||
return 0;
|
||||
//DSPEIRam 1 DSPW per 1 ARMW
|
||||
}
|
||||
else if(addr==0x17E8)//Reset
|
||||
{
|
||||
_dsp_Reset();
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x17D0)//Write DSP/ARM Semaphore
|
||||
{
|
||||
_dsp_ARMwrite2sema4(val);
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x17FC)//start/stop
|
||||
{
|
||||
_dsp_SetRunning(val>0);
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x200)
|
||||
{
|
||||
cregs[0x200]|=val;
|
||||
_clio_SetTimers(val, 0);
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x204)
|
||||
{
|
||||
cregs[0x200]&=~val;
|
||||
_clio_ClearTimers(val, 0);
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x208)
|
||||
{
|
||||
cregs[0x208]|=val;
|
||||
_clio_SetTimers(0, val);
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x20c)
|
||||
{
|
||||
cregs[0x208]&=~val;
|
||||
_clio_ClearTimers(0, val);
|
||||
return 0;
|
||||
}
|
||||
else if(addr==0x220)
|
||||
{
|
||||
//if(val<64)val=64;
|
||||
cregs[addr]=val&0x3ff;
|
||||
return 0;
|
||||
}
|
||||
else if(addr>=0x100 && addr<=0x7c)
|
||||
{
|
||||
cregs[addr]=val&0xffff;
|
||||
return 0;
|
||||
}
|
||||
// char jj[90];
|
||||
// sprintf(jj, "addr=%X, val=0x%8.8X", addr, val,);
|
||||
//if(jw==0&&addr==0x128){io_interface(EXT_DEBUG_PRINT,(void*)jj); jw=100000;}
|
||||
if(addr==0x128&&val==0x0)jw=17000000;//val=1;
|
||||
|
||||
cregs[addr]=val;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
unsigned int __fastcall _clio_Peek(unsigned int addr)
|
||||
{
|
||||
|
||||
#ifdef DBGCLIO
|
||||
val=CClio::Peek(index);
|
||||
if(index!=0x34)
|
||||
{
|
||||
sprintf(str,"0x%8.8X : CLIO Read clio[0x%X] = 0x%8.8X\n",RegRead(15),index,val);
|
||||
CDebug::DPrint(str);
|
||||
}
|
||||
return val;
|
||||
#endif
|
||||
|
||||
//if(addr>0x600) // ??????? DSP debug
|
||||
//{
|
||||
// printf("#CLIO:PEEK (0x%4.4X)\n",addr);
|
||||
//}
|
||||
//if(addr==0x200 || addr==0x204 || addr==0x208 || addr==0x20c || (addr>=0x100 && addr<=0x17c) || addr==0x220)io_interface(EXT_DEBUG_PRINT,(void*)str.print("CLIO Read[0x%X] = 0x%8.8X",addr,cregs[addr]).CStr());
|
||||
//if(addr==0x34 || addr==0x30)io_interface(EXT_DEBUG_PRINT,(void*)str.print("CLIO Read[0x%X] = 0x%8.8X",addr,cregs[addr]).CStr());
|
||||
|
||||
if( (addr& ~0x2C) == 0x40 ) // 0x40..0x4C, 0x60..0x6C case
|
||||
{
|
||||
addr&=~4; // By read 40 and 44, 48 and 4c, 60 and 64, 68 and 6c same
|
||||
if(addr==0x40)
|
||||
{
|
||||
return cregs[0x40];
|
||||
}
|
||||
else if(addr==0x48)
|
||||
{
|
||||
return cregs[0x48]|0x80000000;
|
||||
}
|
||||
else if(addr==0x60)
|
||||
{
|
||||
return cregs[0x60];
|
||||
}
|
||||
else if(addr==0x68)
|
||||
{
|
||||
return cregs[0x68];
|
||||
}
|
||||
return 0; // for skip warning C4715
|
||||
}
|
||||
else if(addr==0x204)
|
||||
{
|
||||
return cregs[0x200];
|
||||
}
|
||||
else if(addr==0x20c)
|
||||
{
|
||||
return cregs[0x208];
|
||||
}
|
||||
else if(addr==0x308)
|
||||
{
|
||||
return cregs[0x304];
|
||||
}
|
||||
else if (addr==0x414)
|
||||
{
|
||||
return 0x4000; //TO CHECK!!! requested by CDROMDIPIR
|
||||
}
|
||||
else if((addr>=0x500) && (addr<0x540))
|
||||
{
|
||||
return _xbus_GetRes();
|
||||
}
|
||||
else if((addr>=0x540) && (addr<0x580))
|
||||
{
|
||||
#ifdef DBGXBUS
|
||||
sprintf(str,"XBPC : 0x%8.8x :",RegRead(15));
|
||||
CDebug::DPrint(str);
|
||||
#endif
|
||||
return _xbus_GetPoll();
|
||||
}
|
||||
else if((addr>=0x580) && (addr<0x5c0))
|
||||
{
|
||||
return _xbus_GetStatusFIFO();
|
||||
}
|
||||
else if((addr>=0x5c0) && (addr<0x600))
|
||||
{
|
||||
return _xbus_GetDataFIFO();
|
||||
}
|
||||
else if(addr==0x0)
|
||||
{
|
||||
return 0x02020000;
|
||||
}
|
||||
else if((addr>=0x3800)&&(addr<=0x3bff))//0x0340 3800 … 0x0340 3BFF
|
||||
{
|
||||
//2DSPW per 1ARMW
|
||||
DSPA=(addr-0x3800)>>1;
|
||||
DSPA&=0xff;
|
||||
DSPA+=0x300;
|
||||
DSPW1=_dsp_ReadIMem(DSPA);
|
||||
DSPW2=_dsp_ReadIMem(DSPA+1);
|
||||
return ((DSPW1<<16)|DSPW2);
|
||||
}
|
||||
else if((addr>=0x3c00)&&(addr<=0x3fff))//0x0340 3C00 … 0x0340 3FFF
|
||||
{
|
||||
DSPA=(addr-0x3c00)>>2;
|
||||
DSPA&=0xff;
|
||||
DSPA+=0x300;
|
||||
return (_dsp_ReadIMem(DSPA));
|
||||
}
|
||||
else if(addr==0x17F0)
|
||||
{
|
||||
return fastrand();
|
||||
}
|
||||
else if(addr==0x17D0)//Read DSP/ARM Semaphore
|
||||
{
|
||||
return _dsp_ARMread2sema4();
|
||||
}
|
||||
else if(addr>=0x100 && addr<=0x7c)
|
||||
{
|
||||
return cregs[addr]&0xffff;
|
||||
}
|
||||
else
|
||||
return cregs[addr];
|
||||
}
|
||||
|
||||
void __fastcall _clio_UpdateVCNT(int line, int halfframe)
|
||||
{
|
||||
// Poke(0x34,Peek(0x34)+1);
|
||||
cregs[0x34]=(halfframe<<11)+line;
|
||||
}
|
||||
|
||||
|
||||
void __fastcall _clio_SetTimers(uint32 v200, uint32 v208)
|
||||
{
|
||||
(void) v200;
|
||||
(void) v208;
|
||||
}
|
||||
void __fastcall _clio_ClearTimers(uint32 v204, uint32 v20c)
|
||||
{
|
||||
(void) v204;
|
||||
(void) v20c;
|
||||
}
|
||||
void __fastcall _clio_DoTimers()
|
||||
{
|
||||
unsigned int timer;
|
||||
unsigned short counter;
|
||||
unsigned int flag;
|
||||
bool NeedDecrementNextTimer=true; // Need decrement for next timer
|
||||
//bool prevdec=false;
|
||||
for (timer=0;timer<16;timer++)
|
||||
{
|
||||
flag=cregs[(timer<8)?0x200:0x208]>>((timer*4)&31);
|
||||
if( !(flag&CASCADE) ) NeedDecrementNextTimer=true;
|
||||
|
||||
if( NeedDecrementNextTimer && (flag&DECREMENT) )
|
||||
{
|
||||
counter=cregs[0x100+timer*8];
|
||||
if((NeedDecrementNextTimer=(counter--==0)))
|
||||
{
|
||||
if((timer&1)) // Only odd timers can generate
|
||||
{ // generate the interrupts because be overflow
|
||||
_clio_GenerateFiq(1<<(10-timer/2),0);
|
||||
}
|
||||
if(flag&RELOAD)
|
||||
{ // reload timer by reload value
|
||||
counter=cregs[0x100+timer*8+4];
|
||||
//return;
|
||||
}
|
||||
else
|
||||
{ // timer stopped -> reset it's flag DECREMENT
|
||||
cregs[(timer<8)?0x200:0x208] &= ~( DECREMENT<<((timer*4)&31) );
|
||||
}
|
||||
}
|
||||
cregs[0x100+timer*8]=counter;
|
||||
}
|
||||
//else if( !prevdec && (flag&CASCADE) ) return;
|
||||
else NeedDecrementNextTimer=false;
|
||||
//if( !(flag&CASCADE) ) NeedDecrementNextTimer=true;
|
||||
//prevdec=(flag&DECREMENT);
|
||||
}
|
||||
}
|
||||
|
||||
unsigned int _clio_GetTimerDelay()
|
||||
{
|
||||
return cregs[0x220];
|
||||
}
|
||||
|
||||
|
||||
void __fastcall HandleDMA(unsigned int val)
|
||||
{
|
||||
unsigned int src;
|
||||
unsigned int trg;
|
||||
int len;
|
||||
unsigned int ptr;
|
||||
unsigned char b0,b1,b2,b3;
|
||||
|
||||
|
||||
cregs[0x304]|=val;
|
||||
if(val&0x00100000)
|
||||
{
|
||||
cregs[0x304]&=~0x00100000;
|
||||
src=_madam_Peek(0x540);
|
||||
//if(src&3)_3do_DPrint("Align Err!!! - see CLIO XBUS DMA");
|
||||
trg=src;
|
||||
len=_madam_Peek(0x544);
|
||||
//if(len&3)_3do_DPrint("Overflow Err!!! - see CLIO XBUS DMA");
|
||||
|
||||
cregs[0x400]&=~0x80;
|
||||
|
||||
if((cregs[0x404])&0x200)
|
||||
{
|
||||
ptr=0;
|
||||
while(len>=0)
|
||||
{
|
||||
b3=_xbus_GetDataFIFO();
|
||||
//st=CXBUS::GetPoll();
|
||||
//ptr++;
|
||||
|
||||
b2=_xbus_GetDataFIFO();
|
||||
//st=CXBUS::GetPoll();
|
||||
|
||||
b1=_xbus_GetDataFIFO();
|
||||
//st=CXBUS::GetPoll();
|
||||
|
||||
b0=_xbus_GetDataFIFO();
|
||||
//st=CXBUS::GetPoll();
|
||||
|
||||
_mem_write8(trg,b0);
|
||||
_mem_write8(trg+1,b1);
|
||||
_mem_write8(trg+2,b2);
|
||||
_mem_write8(trg+3,b3);
|
||||
|
||||
trg+=4;
|
||||
len-=4;
|
||||
ptr+=4;
|
||||
|
||||
}
|
||||
//CCdRom::ClearDataPoll(CMadam::Peek(0x544));
|
||||
//CCdRom::ClearDataPoll();
|
||||
cregs[0x400]|=0x80;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
ptr=0;
|
||||
|
||||
while(len>=0)
|
||||
{
|
||||
b3=_xbus_GetDataFIFO();
|
||||
//st=CXBUS::GetPoll();
|
||||
//ptr++;
|
||||
|
||||
b2=_xbus_GetDataFIFO();
|
||||
//st=CXBUS::GetPoll();
|
||||
|
||||
b1=_xbus_GetDataFIFO();
|
||||
//st=CXBUS::GetPoll();
|
||||
|
||||
b0=_xbus_GetDataFIFO();
|
||||
//st=CXBUS::GetPoll();
|
||||
|
||||
_mem_write8(trg,b0);
|
||||
_mem_write8(trg+1,b1);
|
||||
_mem_write8(trg+2,b2);
|
||||
_mem_write8(trg+3,b3);
|
||||
|
||||
trg+=4;
|
||||
len-=4;
|
||||
ptr+=4;
|
||||
|
||||
}
|
||||
//CCdRom::ClearDataPoll(CMadam::Peek(0x544));
|
||||
//CCdRom::ClearDataPoll();
|
||||
cregs[0x400]|=0x80;
|
||||
|
||||
}
|
||||
len=0xFFFFFFFC;
|
||||
_madam_Poke(0x544,len);
|
||||
//event.type = SDL_USEREVENT;
|
||||
//event.user.code = CREATEFIQ|29;
|
||||
//SDL_PushEvent(&event);
|
||||
//CFE::FE_PushEvent(&event);
|
||||
_clio_GenerateFiq(1<<29,0);
|
||||
|
||||
return;
|
||||
}//XBDMA transfer
|
||||
#ifdef FIFODBG
|
||||
else
|
||||
{
|
||||
|
||||
sprintf(str,"_Fifo304 inChan=");
|
||||
CDebug::DPrint(str);
|
||||
|
||||
for(i=0;i<13;i++)
|
||||
{
|
||||
if(val&(1<<i))
|
||||
{
|
||||
sprintf(str,"%d ",i);
|
||||
CDebug::DPrint(str);
|
||||
}
|
||||
|
||||
}
|
||||
sprintf(str,"outChan=");
|
||||
CDebug::DPrint(str);
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
if(val&(1<<(i+16)))
|
||||
{
|
||||
sprintf(str,"%d ",i);
|
||||
CDebug::DPrint(str);
|
||||
}
|
||||
}
|
||||
sprintf(str,"\n");
|
||||
CDebug::DPrint(str);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void _clio_Init(int ResetReson)
|
||||
{
|
||||
for(int i=0;i<32768;i++)
|
||||
cregs[i]=0;
|
||||
|
||||
//cregs[8]=240;
|
||||
|
||||
cregs[0x0028]=ResetReson;
|
||||
cregs[0x0400]=0x80;
|
||||
cregs[0x220]=64;
|
||||
Mregs=_madam_GetRegs();
|
||||
|
||||
}
|
||||
unsigned short __fastcall _clio_EIFIFO(unsigned short channel)
|
||||
{
|
||||
unsigned int val,base,mask;
|
||||
|
||||
|
||||
|
||||
base=0x400+(channel*16);
|
||||
mask=1<<channel;
|
||||
|
||||
if(FIFOI[channel].StartAdr!=0)//channel enabled
|
||||
{
|
||||
|
||||
if( (FIFOI[channel].StartLen-PTRI[channel])>0 )
|
||||
{
|
||||
val=_mem_read16( ((FIFOI[channel].StartAdr+PTRI[channel])^2) );
|
||||
PTRI[channel]+=2;
|
||||
}
|
||||
else
|
||||
{
|
||||
PTRI[channel]=0;
|
||||
_clio_GenerateFiq(1<<(channel+16),0);//generate fiq
|
||||
if(FIFOI[channel].NextAdr!=0)// reload enabled see patent WO09410641A1, 49.16
|
||||
{
|
||||
FIFOI[channel].StartAdr=FIFOI[channel].NextAdr;
|
||||
FIFOI[channel].StartLen=FIFOI[channel].NextLen;
|
||||
val=_mem_read16(((FIFOI[channel].StartAdr+PTRI[channel])^2)); //get the value!!!
|
||||
PTRI[channel]+=2;
|
||||
}
|
||||
else
|
||||
{
|
||||
FIFOI[channel].StartAdr=0;
|
||||
val=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
val=0;
|
||||
// JMK SEZ: What is this? It was commented out along with this whole "else"
|
||||
// block, but I had to bring this else block back from the dead
|
||||
// in order to initialize val appropriately.
|
||||
|
||||
// _clio_GenerateFiq(1<<(channel+16),0);
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
void __fastcall _clio_EOFIFO(unsigned short channel, unsigned short val)
|
||||
{
|
||||
|
||||
unsigned int base;
|
||||
unsigned int mask;
|
||||
base=0x500+(channel*16);
|
||||
mask=1<<(channel+16);
|
||||
|
||||
if(FIFOO[channel].StartAdr!=0)//channel enabled
|
||||
{
|
||||
|
||||
if( (FIFOO[channel].StartLen-PTRO[channel])>0 )
|
||||
{
|
||||
_mem_write16(((FIFOO[channel].StartAdr+PTRO[channel])^2),val);
|
||||
PTRO[channel]+=2;
|
||||
}
|
||||
else
|
||||
{
|
||||
PTRO[channel]=0;
|
||||
_clio_GenerateFiq(1<<(channel+12),0);//generate fiq
|
||||
if(FIFOO[channel].NextAdr!=0) //reload enabled?
|
||||
{
|
||||
FIFOO[channel].StartAdr=FIFOO[channel].NextAdr;
|
||||
FIFOO[channel].StartLen=FIFOO[channel].NextLen;
|
||||
}
|
||||
else
|
||||
{
|
||||
FIFOO[channel].StartAdr=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
unsigned short __fastcall _clio_EIFIFONI(unsigned short channel)
|
||||
{
|
||||
unsigned int base;
|
||||
base=0x400+(channel*16);
|
||||
return _mem_read16(((FIFOI[channel].StartAdr+PTRI[channel])^2));
|
||||
}
|
||||
|
||||
unsigned short __fastcall _clio_GetEIFIFOStat(unsigned char channel)
|
||||
{
|
||||
unsigned int mask;
|
||||
|
||||
mask=1<<channel;
|
||||
//if(cregs[0x304]&mask)//channel enabled
|
||||
if( FIFOI[channel].StartAdr!=0 )
|
||||
{
|
||||
//return 1;
|
||||
//return (FIFOI[channel].StartLen-PTRI[channel]);
|
||||
return 2;// 2fixme
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned short __fastcall _clio_GetEOFIFOStat(unsigned char channel)
|
||||
{
|
||||
unsigned int mask;
|
||||
mask=1<<(channel+16);
|
||||
//if(cregs[0x304]&mask)//channel enabled
|
||||
if( FIFOO[channel].StartAdr!=0 )
|
||||
return 1;
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
void _clio_SetFIFO(unsigned int adr, unsigned int val)
|
||||
{
|
||||
if((adr&0x500)==0x400)
|
||||
{
|
||||
|
||||
switch (adr&0xf)
|
||||
{
|
||||
case 0: FIFOI[(adr>>4)&0xf].StartAdr=val;
|
||||
FIFOI[(adr>>4)&0xf].NextAdr=0;//see patent WO09410641A1, 46.25
|
||||
|
||||
#ifdef FIFODBG
|
||||
sprintf(str,"SetInFIFO chan=%x StartAdr=%x\n",(adr>>4)&0xf,val);CDebug::DPrint(str);
|
||||
#endif
|
||||
return;
|
||||
case 4: FIFOI[(adr>>4)&0xf].StartLen=val+4;
|
||||
if(val==0)
|
||||
FIFOI[(adr>>4)&0xf].StartLen=0;
|
||||
|
||||
FIFOI[(adr>>4)&0xf].NextLen=0;//see patent WO09410641A1, 46.25
|
||||
#ifdef FIFODBG
|
||||
sprintf(str,"SetInFIFO chan=%x StartLen=%x\n",(adr>>4)&0xf,val+4);CDebug::DPrint(str);
|
||||
#endif
|
||||
return;
|
||||
case 8: FIFOI[(adr>>4)&0xf].NextAdr=val;
|
||||
#ifdef FIFODBG
|
||||
sprintf(str,"SetInFIFO chan=%x NextAdr=%x\n",(adr>>4)&0xf,val);CDebug::DPrint(str);
|
||||
#endif
|
||||
return;
|
||||
case 0xc:
|
||||
if(val!=0)
|
||||
FIFOI[(adr>>4)&0xf].NextLen=val+4;
|
||||
else
|
||||
FIFOI[(adr>>4)&0xf].NextLen=0;
|
||||
#ifdef FIFODBG
|
||||
sprintf(str,"SetInFIFO chan=%x NextLen=%x\n",(adr>>4)&0xf,val+4);CDebug::DPrint(str);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef FIFODBG
|
||||
sprintf(str,"SetOutFIFO chan=%x addr=%x var=%x\n",(adr>>4)&0xf,val,adr&0xf);
|
||||
CDebug::DPrint(str);
|
||||
#endif
|
||||
switch (adr&0xf)
|
||||
{
|
||||
case 0: FIFOO[(adr>>4)&0xf].StartAdr=val;return;
|
||||
case 4: FIFOO[(adr>>4)&0xf].StartLen=val+4;return;
|
||||
case 8: FIFOO[(adr>>4)&0xf].NextAdr=val;return;
|
||||
case 0xc:FIFOO[(adr>>4)&0xf].NextLen=val+4;return;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void _clio_Reset()
|
||||
{
|
||||
int i;
|
||||
for(i=0;i<65536;i++)
|
||||
cregs[i]=0;
|
||||
|
||||
}
|
||||
|
||||
unsigned int _clio_FIFOStruct(unsigned int addr)
|
||||
{
|
||||
if((addr&0x500)==0x400)
|
||||
{
|
||||
//printf("SetOutFIFO chan=%x addr=%x var=%x\n",(adr>>4)&0xf,val,adr&0xf);
|
||||
switch (addr&0xf)
|
||||
{
|
||||
case 0:
|
||||
#ifdef FIFODBG
|
||||
sprintf(str,"_GetInFIFO chan=%x StartAdr=%x\n",(addr>>4)&0xf,FIFOI[(addr>>4)&0xf].StartAdr+PTRI[(addr>>4)&0xf]);CDebug::DPrint(str);
|
||||
#endif
|
||||
return FIFOI[(addr>>4)&0xf].StartAdr+PTRI[(addr>>4)&0xf];
|
||||
case 4:
|
||||
#ifdef FIFODBG
|
||||
sprintf(str,"_GetInFIFO chan=%x StartLen=%x\n",(addr>>4)&0xf,FIFOI[(addr>>4)&0xf].StartLen-PTRI[(addr>>4)&0xf]);CDebug::DPrint(str);
|
||||
#endif
|
||||
return FIFOI[(addr>>4)&0xf].StartLen-PTRI[(addr>>4)&0xf];
|
||||
case 8:
|
||||
#ifdef FIFODBG
|
||||
sprintf(str,"_GetInFIFO chan=%x NextAdr=%x\n",(addr>>4)&0xf,FIFOI[(addr>>4)&0xf].NextAdr);CDebug::DPrint(str);
|
||||
#endif
|
||||
return FIFOI[(addr>>4)&0xf].NextAdr;
|
||||
case 0xc:
|
||||
#ifdef FIFODBG
|
||||
sprintf(str,"_GetInFIFO chan=%x NextLen=%x\n",(addr>>4)&0xf,FIFOI[(addr>>4)&0xf].NextLen);CDebug::DPrint(str);
|
||||
#endif
|
||||
return FIFOI[(addr>>4)&0xf].NextLen;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//printf("SetInFIFO chan=%x addr=%x var=%x\n",(adr>>4)&0xf,val,adr&0xf);
|
||||
switch (addr&0xf)
|
||||
{
|
||||
case 0: return FIFOO[(addr>>4)&0xf].StartAdr+PTRO[(addr>>4)&0xf];
|
||||
case 4: return FIFOO[(addr>>4)&0xf].StartLen-PTRO[(addr>>4)&0xf];
|
||||
case 8: return FIFOO[(addr>>4)&0xf].NextAdr;
|
||||
case 0xc:return FIFOO[(addr>>4)&0xf].NextLen;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return 0; // ??? it's possible?
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
// Clio.h: interface for the CClio class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef CLIO_3DO_HEADER
|
||||
#define CLIO_3DO_HEADER
|
||||
|
||||
int _clio_v0line();
|
||||
int _clio_v1line();
|
||||
bool __fastcall _clio_NeedFIQ();
|
||||
|
||||
unsigned int _clio_FIFOStruct(unsigned int addr);
|
||||
void _clio_Reset();
|
||||
void _clio_SetFIFO(unsigned int adr, unsigned int val);
|
||||
unsigned short __fastcall _clio_GetEOFIFOStat(unsigned char channel);
|
||||
unsigned short __fastcall _clio_GetEIFIFOStat(unsigned char channel);
|
||||
unsigned short __fastcall _clio_EIFIFONI(unsigned short channel);
|
||||
void __fastcall _clio_EOFIFO(unsigned short channel, unsigned short val);
|
||||
unsigned short __fastcall _clio_EIFIFO(unsigned short channel);
|
||||
|
||||
void _clio_Init(int ResetReson);
|
||||
|
||||
void __fastcall _clio_DoTimers();
|
||||
unsigned int __fastcall _clio_Peek(unsigned int addr);
|
||||
int __fastcall _clio_Poke(unsigned int addr, unsigned int val);
|
||||
void __fastcall _clio_UpdateVCNT(int line, int halfframe);
|
||||
void __fastcall _clio_GenerateFiq(unsigned int reason1, unsigned int reason2);
|
||||
|
||||
unsigned int _clio_GetTimerDelay();
|
||||
|
||||
unsigned int _clio_SaveSize();
|
||||
void _clio_Save(void *buff);
|
||||
void _clio_Load(void *buff);
|
||||
|
||||
#endif
|
||||
+1301
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
// DSP.h: interface for the CDSP class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef DSP_3DO_HEADER
|
||||
#define DSP_3DO_HEADER
|
||||
|
||||
|
||||
unsigned int _dsp_Loop();
|
||||
|
||||
unsigned short __fastcall _dsp_ReadIMem(unsigned short addr);
|
||||
void __fastcall _dsp_WriteIMem(unsigned short addr, unsigned short val);
|
||||
void __fastcall _dsp_WriteMemory(unsigned short addr,unsigned short val);
|
||||
void __fastcall _dsp_SetRunning(bool val);
|
||||
void __fastcall _dsp_ARMwrite2sema4(unsigned int val);
|
||||
unsigned int _dsp_ARMread2sema4(void);
|
||||
|
||||
void _dsp_Init();
|
||||
void _dsp_Reset();
|
||||
|
||||
|
||||
unsigned int _dsp_SaveSize();
|
||||
void _dsp_Save(void *buff);
|
||||
void _dsp_Load(void *buff);
|
||||
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,110 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
// DiagPort.cpp: implementation of the DiagPort class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "freedoconfig.h"
|
||||
#include "DiagPort.h"
|
||||
|
||||
static unsigned short SNDDebugFIFO0;
|
||||
static unsigned short SNDDebugFIFO1;
|
||||
static unsigned short RCVDebugFIFO0;
|
||||
static unsigned short RCVDebugFIFO1;
|
||||
static unsigned short GetPTR;
|
||||
static unsigned short SendPTR;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
void __fastcall _diag_Send(unsigned int val)
|
||||
{
|
||||
if(GetPTR!=16)
|
||||
{
|
||||
GetPTR=16;
|
||||
SendPTR=16;
|
||||
SNDDebugFIFO0=0;
|
||||
SNDDebugFIFO1=0;
|
||||
}
|
||||
|
||||
SNDDebugFIFO0|=(val&1)<<(SendPTR-1);
|
||||
SNDDebugFIFO1|=((val&1)>>1)<<(SendPTR-1);
|
||||
|
||||
SendPTR--;
|
||||
|
||||
if(SendPTR==0)
|
||||
{
|
||||
SendPTR=16;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
unsigned int __fastcall _diag_Get()
|
||||
{
|
||||
unsigned int val;
|
||||
|
||||
if(SendPTR!=16)
|
||||
{
|
||||
GetPTR=16;
|
||||
SendPTR=16;
|
||||
}
|
||||
|
||||
val=0;
|
||||
|
||||
val=((RCVDebugFIFO0>>(GetPTR-1))&0x1);
|
||||
val|=((RCVDebugFIFO1>>(GetPTR-1))&0x1)<<0x1;
|
||||
GetPTR--;
|
||||
|
||||
/* if(GetPTR>0)
|
||||
{
|
||||
RCVDebugFIFO0=RCVDebugFIFO0>>1;
|
||||
RCVDebugFIFO1=RCVDebugFIFO1>>1;
|
||||
GetPTR--;
|
||||
val=RCVDebugFIFO0&0x1;
|
||||
val|=(RCVDebugFIFO1&0x1)<<0x1;
|
||||
}
|
||||
*/
|
||||
if(GetPTR==0) GetPTR=16;
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
void _diag_Init(int testcode)
|
||||
{
|
||||
SNDDebugFIFO0=0;
|
||||
SNDDebugFIFO1=0;
|
||||
GetPTR=16;
|
||||
SendPTR=16;
|
||||
|
||||
if(testcode>=0)
|
||||
{
|
||||
testcode ^= 0xFF;
|
||||
testcode |= 0xA000;
|
||||
} else testcode=0;
|
||||
|
||||
RCVDebugFIFO0=testcode;
|
||||
RCVDebugFIFO1=testcode;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
// DiagPort.h: interface for the DiagPort class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _DIAG_PORT_HEADER_DEFINITION_
|
||||
#define _DIAG_PORT_HEADER_DEFINITION_
|
||||
|
||||
void _diag_Init(int testcode);
|
||||
|
||||
unsigned int __fastcall _diag_Get();
|
||||
void __fastcall _diag_Send(unsigned int val);
|
||||
|
||||
|
||||
#endif
|
||||
+1371
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
#ifndef ISO_3DO_HEADER
|
||||
#define ISO_3DO_HEADER 0x00000001
|
||||
|
||||
#define XBP_INIT 0 //plugin init, returns plugin version
|
||||
#define XBP_RESET 1 //plugin reset with parameter(image path)
|
||||
#define XBP_SET_COMMAND 2 //XBUS
|
||||
#define XBP_FIQ 3 //check interrupt form device
|
||||
#define XBP_SET_DATA 4 //XBUS
|
||||
#define XBP_GET_DATA 5 //XBUS
|
||||
#define XBP_GET_STATUS 6 //XBUS
|
||||
#define XBP_SET_POLL 7 //XBUS
|
||||
#define XBP_GET_POLL 8 //XBUS
|
||||
#define XBP_SELECT 9 //selects device by Opera
|
||||
#define XBP_RESERV 10 //reserved reading from device
|
||||
#define XBP_DESTROY 11 //plugin destroy
|
||||
|
||||
#define XBP_GET_SAVESIZE 19 //save support from emulator side
|
||||
#define XBP_GET_SAVEDATA 20
|
||||
#define XBP_SET_SAVEDATA 21
|
||||
|
||||
#ifdef XBUS_EXPORTS
|
||||
#define XBUS_API __declspec(dllexport)
|
||||
#else
|
||||
#define XBUS_API __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
/*extern "C"
|
||||
{
|
||||
XBUS_API void* _xbplug_MainDevice(int proc, void* data);
|
||||
|
||||
#ifdef XBUS_EXPORTS
|
||||
BOOL APIENTRY DllMain( HMODULE hModule,
|
||||
DWORD ul_reason_for_call,
|
||||
LPVOID lpReserved
|
||||
);
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifndef XBUS_EXPORTS
|
||||
#pragma comment(lib, "IsoXBUS.lib")
|
||||
#endif*/
|
||||
|
||||
#endif
|
||||
+2880
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
// Madam.h: interface for the CMadam class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef MADAM_3DO_HEADER
|
||||
#define MADAM_3DO_HEADER
|
||||
|
||||
#define FSM_IDLE 1
|
||||
#define FSM_INPROCESS 2
|
||||
#define FSM_SUSPENDED 3
|
||||
|
||||
unsigned int Get_madam_FSM();
|
||||
void Set_madam_FSM(unsigned int val);
|
||||
|
||||
|
||||
void _madam_SetMapping(unsigned int flag);
|
||||
void _madam_Reset();
|
||||
unsigned int _madam_GetCELCycles();
|
||||
unsigned int * _madam_GetRegs();
|
||||
int _madam_HandleCEL(); //!!!~!
|
||||
void _madam_Init(unsigned char* memory);
|
||||
void _madam_KeyPressed(unsigned char* data, unsigned int num);
|
||||
void __fastcall _madam_Poke(unsigned int addr, unsigned int val);
|
||||
unsigned int __fastcall _madam_Peek(unsigned int addr);
|
||||
|
||||
unsigned int _madam_SaveSize();
|
||||
void _madam_Save(void *buff);
|
||||
void _madam_Load(void *buff);
|
||||
|
||||
//void _madam_PrepToRendering();
|
||||
//bool __fastcall _madam_VRAMBusy(unsigned int addr, int size);
|
||||
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,65 @@
|
||||
#www.freedo.org
|
||||
#The first and only working 3DO multiplayer emulator.
|
||||
#
|
||||
#The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
#
|
||||
#* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
#* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
# of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
#* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
# or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
#
|
||||
#The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
#
|
||||
#Project authors:
|
||||
#
|
||||
#Alexander Troosh
|
||||
#Maxim Grishin
|
||||
#Allen Wright
|
||||
#John Sammons
|
||||
#Felix Lazarev
|
||||
##########################################################################################################################
|
||||
|
||||
#source files
|
||||
|
||||
SRC = Clio.cpp Madam.cpp bitop.cpp arm.cpp DSP.cpp Iso.cpp quarz.cpp SPORT.cpp vdlp.cpp XBUS.cpp DiagPort.cpp _3do_sys.cpp
|
||||
|
||||
OBJ = $(SRC:.cpp=.o)
|
||||
|
||||
OUT = libfreedo.a
|
||||
|
||||
#include dirs
|
||||
INCLUDES = -I. -I/usr/local/include
|
||||
|
||||
#C++ flags
|
||||
CCFLAGS = -g
|
||||
|
||||
#compiler
|
||||
CCC = g++
|
||||
|
||||
#libraries
|
||||
LIBS = -L/usr/local/lib
|
||||
|
||||
#compile flags
|
||||
LDFLAGS = -g
|
||||
|
||||
.SUFFIXES: .cpp
|
||||
|
||||
default: dep $(OUT)
|
||||
|
||||
.cpp.o:
|
||||
$(CCC) $(INCLUDES) $(CCFLAGS) -c $< -o $@
|
||||
|
||||
$(OUT): $(OBJ)
|
||||
ar rcs $(OUT) $(OBJ)
|
||||
|
||||
depend: dep
|
||||
|
||||
dep:
|
||||
makedepend -- $(CFLAGS) -- $(INCLUDES) $(SRC)
|
||||
|
||||
clean:
|
||||
rm -f $(OBJ) $(OUT) Makefile.bak Makefile~
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,153 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
// SPORT.cpp: implementation of the SPORT class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "freedoconfig.h"
|
||||
#include "SPORT.h"
|
||||
#include "arm.h"
|
||||
#include <memory.h>
|
||||
|
||||
#include "freedocore.h"
|
||||
|
||||
extern _ext_Interface io_interface;
|
||||
|
||||
static unsigned int gSPORTCOLOR;
|
||||
static unsigned int gSPORTSOURCE=0;
|
||||
static unsigned int gSPORTDESTINATION=0;
|
||||
static unsigned char* VRAM;
|
||||
|
||||
unsigned int _sport_SaveSize()
|
||||
{
|
||||
return 12;
|
||||
}
|
||||
void _sport_Save(void *buff)
|
||||
{
|
||||
((unsigned int*)buff)[0]=gSPORTCOLOR;
|
||||
((unsigned int*)buff)[1]=gSPORTSOURCE;
|
||||
((unsigned int*)buff)[2]=gSPORTDESTINATION;
|
||||
}
|
||||
void _sport_Load(void *buff)
|
||||
{
|
||||
gSPORTCOLOR=((unsigned int*)buff)[0];
|
||||
gSPORTSOURCE=((unsigned int*)buff)[1];
|
||||
gSPORTDESTINATION=((unsigned int*)buff)[2];
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//static AString str;
|
||||
|
||||
void _sport_Init(unsigned char *vmem)
|
||||
{
|
||||
VRAM=vmem;
|
||||
}
|
||||
|
||||
int __fastcall _sport_SetSource(unsigned int index) //take source for SPORT
|
||||
{
|
||||
gSPORTSOURCE=(index<<7);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void __fastcall _sport_WriteAccess(unsigned int index, unsigned int mask)
|
||||
{
|
||||
int i;
|
||||
unsigned int tmp,ctmp;
|
||||
|
||||
|
||||
|
||||
if((index & ~0x1FFF)==0x4000) //SPORT flash write
|
||||
{
|
||||
index&=0x7ff;
|
||||
index<<=7;
|
||||
if(mask == 0xFFFFffff)
|
||||
{
|
||||
for(i=0;i<512;i++)
|
||||
{
|
||||
((unsigned int*)VRAM)[index+i]=gSPORTCOLOR;
|
||||
}
|
||||
}
|
||||
else // mask is not 0xFFFFffff
|
||||
{
|
||||
for(i=0;i<512;i++)
|
||||
{
|
||||
tmp=((unsigned int*)VRAM)[index+i];
|
||||
tmp=((tmp^gSPORTCOLOR)&mask)^gSPORTCOLOR;
|
||||
((unsigned int*)VRAM)[index+i]=tmp;
|
||||
}
|
||||
}
|
||||
if(!RESSCALE)return;
|
||||
memcpy(&((unsigned int*)VRAM)[index+1024*256], &((unsigned int*)VRAM)[index], 2048);
|
||||
memcpy(&((unsigned int*)VRAM)[index+2*1024*256], &((unsigned int*)VRAM)[index], 2048);
|
||||
memcpy(&((unsigned int*)VRAM)[index+3*1024*256], &((unsigned int*)VRAM)[index], 2048);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if(!(index & ~0x1FFF)) //SPORT copy page
|
||||
{
|
||||
gSPORTDESTINATION=(index &0x7ff)<<7;
|
||||
if(mask == 0xFFFFffff)
|
||||
{
|
||||
memcpy(&((unsigned int*)VRAM)[gSPORTDESTINATION],&((unsigned int*)VRAM)[gSPORTSOURCE],512*4);
|
||||
if(!RESSCALE)return;
|
||||
memcpy(&((unsigned int*)VRAM)[gSPORTDESTINATION+1024*256], &((unsigned int*)VRAM)[gSPORTSOURCE+1024*256], 2048);
|
||||
memcpy(&((unsigned int*)VRAM)[gSPORTDESTINATION+2*1024*256], &((unsigned int*)VRAM)[gSPORTSOURCE+2*1024*256], 2048);
|
||||
memcpy(&((unsigned int*)VRAM)[gSPORTDESTINATION+3*1024*256], &((unsigned int*)VRAM)[gSPORTSOURCE+3*1024*256], 2048);
|
||||
}
|
||||
else // mask != 0xFFFFffff
|
||||
{
|
||||
for(i=0;i<512;i++)
|
||||
{
|
||||
tmp=((unsigned int*)VRAM)[gSPORTDESTINATION+i];
|
||||
ctmp=((unsigned int*)VRAM)[gSPORTSOURCE+i];
|
||||
tmp=((tmp^ctmp)&mask)^ctmp;
|
||||
((unsigned int*)VRAM)[gSPORTDESTINATION+i]=tmp;
|
||||
}
|
||||
if(!RESSCALE)return;
|
||||
memcpy(&((unsigned int*)VRAM)[gSPORTDESTINATION+1024*256], &((unsigned int*)VRAM)[gSPORTDESTINATION], 2048);
|
||||
memcpy(&((unsigned int*)VRAM)[gSPORTDESTINATION+2*1024*256], &((unsigned int*)VRAM)[gSPORTDESTINATION], 2048);
|
||||
memcpy(&((unsigned int*)VRAM)[gSPORTDESTINATION+3*1024*256], &((unsigned int*)VRAM)[gSPORTDESTINATION], 2048);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if((index & ~0x1FFF)==0x2000) //SPORT set color!!!
|
||||
{
|
||||
gSPORTCOLOR=mask;
|
||||
return;
|
||||
}
|
||||
|
||||
// io_interface(EXT_DEBUG_PRINT,(void*)str.print("::::SPORT:::: Unknown write, Index=0x%8.8X, Mask=0x%8.8X",index, mask).CStr());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
// SPORT.h: interface for the SPORT class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef SPORT_3DO_HEADER
|
||||
#define SPORT_3DO_HEADER
|
||||
|
||||
|
||||
void _sport_Init(unsigned char *vmem);
|
||||
|
||||
//take source for SPORT
|
||||
int __fastcall _sport_SetSource(unsigned int index);
|
||||
|
||||
void __fastcall _sport_WriteAccess(unsigned int index, unsigned int mask);
|
||||
|
||||
unsigned int _sport_SaveSize();
|
||||
void _sport_Save(void *buff);
|
||||
void _sport_Load(void *buff);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,322 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
// XBUS.cpp: implementation of the CXBUS class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "freedoconfig.h"
|
||||
//#include "astring.h"
|
||||
#include "XBUS.h"
|
||||
#include "Clio.h"
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
#pragma pack(push,1)
|
||||
|
||||
struct XBUSDatum
|
||||
{
|
||||
unsigned char XBSEL;
|
||||
unsigned char XBSELH;
|
||||
unsigned char POLF;
|
||||
unsigned char POLDEVF;
|
||||
unsigned char STDEVF[255]; //status of devices
|
||||
unsigned char STLENF; //pointer in fifo
|
||||
unsigned char CmdF[7];
|
||||
unsigned char CmdPtrF;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
#define XBSEL xbus.XBSEL
|
||||
#define XBSELH xbus.XBSELH
|
||||
#define POLF xbus.POLF
|
||||
#define POLDEVF xbus.POLDEVF
|
||||
#define STDEVF xbus.STDEVF
|
||||
#define STLENF xbus.STLENF
|
||||
#define CmdF xbus.CmdF
|
||||
#define CmdPtrF xbus.CmdPtrF
|
||||
|
||||
static XBUSDatum xbus;
|
||||
static _xbus_device xdev[16];
|
||||
|
||||
#define POLSTMASK 0x01
|
||||
#define POLDTMASK 0x02
|
||||
#define POLMAMASK 0x04
|
||||
#define POLREMASK 0x08
|
||||
#define POLST 0x10
|
||||
#define POLDT 0x20
|
||||
#define POLMA 0x40
|
||||
#define POLRE 0x80
|
||||
|
||||
void ExecuteCommandF();
|
||||
|
||||
void _xbus_SetCommandFIFO(unsigned int val)
|
||||
{
|
||||
|
||||
if(xdev[XBSEL])
|
||||
{
|
||||
(*xdev[XBSEL])(XBP_SET_COMMAND,(void*)val);
|
||||
if((*xdev[XBSEL])(XBP_FIQ,NULL)) _clio_GenerateFiq(4,0);
|
||||
}
|
||||
else if(XBSEL==0xf)
|
||||
{
|
||||
if (CmdPtrF<7)
|
||||
{
|
||||
CmdF[CmdPtrF]=(unsigned char)val;
|
||||
CmdPtrF++;
|
||||
|
||||
}
|
||||
if(CmdPtrF>=7)
|
||||
{
|
||||
ExecuteCommandF();
|
||||
CmdPtrF=0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
unsigned int _xbus_GetDataFIFO()
|
||||
{
|
||||
|
||||
if(xdev[XBSEL])
|
||||
{
|
||||
return (uintptr_t)(*xdev[XBSEL])(XBP_GET_DATA,NULL);
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned int _xbus_GetPoll()
|
||||
{
|
||||
|
||||
unsigned int res;
|
||||
|
||||
if(XBSEL==0xf)
|
||||
res=POLF;
|
||||
else if(xdev[XBSEL])res=(uintptr_t)(*xdev[XBSEL])(XBP_GET_POLL, NULL);
|
||||
else res=0x30;
|
||||
|
||||
if(XBSELH&0x80)
|
||||
res&=0xf;
|
||||
|
||||
return res;
|
||||
|
||||
}
|
||||
|
||||
unsigned int _xbus_GetRes()
|
||||
{
|
||||
if(xdev[XBSEL])return (uintptr_t)(*xdev[XBSEL])(XBP_RESERV, NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ExecuteCommandF()
|
||||
{
|
||||
if(CmdF[0]==0x83)
|
||||
{
|
||||
STLENF=12;
|
||||
STDEVF[0]=0x83;
|
||||
STDEVF[1]=0x01;
|
||||
STDEVF[2]=0x01;
|
||||
STDEVF[3]=0x01;
|
||||
STDEVF[4]=0x01;
|
||||
STDEVF[5]=0x01;
|
||||
STDEVF[6]=0x01;
|
||||
STDEVF[7]=0x01;
|
||||
STDEVF[8]=0x01;
|
||||
STDEVF[9]=0x01;
|
||||
STDEVF[10]=0x01;
|
||||
STDEVF[11]=0x01;
|
||||
POLDEVF|=POLST;
|
||||
}
|
||||
if(((POLDEVF&POLST) && (POLDEVF&POLSTMASK)) || ((POLDEVF&POLDT) && (POLDEVF&POLDTMASK)))
|
||||
{
|
||||
_clio_GenerateFiq(4,0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
unsigned int _xbus_GetStatusFIFO()
|
||||
{
|
||||
unsigned int res=0;
|
||||
|
||||
if(xdev[XBSEL])
|
||||
{
|
||||
res=(uintptr_t)(*xdev[XBSEL])(XBP_GET_STATUS,NULL);
|
||||
}
|
||||
else if(XBSEL==0xf)
|
||||
{
|
||||
if(STLENF>0)
|
||||
{
|
||||
res=STDEVF[0];
|
||||
STLENF--;
|
||||
if(STLENF>0)
|
||||
{
|
||||
for(int i=0;i<STLENF;i++)
|
||||
STDEVF[i]=STDEVF[i+1];
|
||||
}
|
||||
else
|
||||
{
|
||||
POLDEVF&=~POLST;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
void _xbus_SetDataFIFO(unsigned int val)
|
||||
{
|
||||
if(xdev[XBSEL])(*xdev[XBSEL])(XBP_SET_DATA,(void*)val);
|
||||
}
|
||||
|
||||
void _xbus_SetPoll(unsigned int val)
|
||||
{
|
||||
if(XBSEL==0xf)
|
||||
{
|
||||
POLF&=0xF0;
|
||||
POLF|=(val&0xf);
|
||||
}
|
||||
if(xdev[XBSEL])
|
||||
{
|
||||
(*xdev[XBSEL])(XBP_SET_POLL,(void*)val);
|
||||
if((*xdev[XBSEL])(XBP_FIQ,NULL)) _clio_GenerateFiq(4,0);
|
||||
}
|
||||
}
|
||||
|
||||
void _xbus_SetSEL(unsigned int val)
|
||||
{
|
||||
XBSEL=(unsigned char)val&0xf;
|
||||
XBSELH=(unsigned char)val&0xf0;
|
||||
}
|
||||
|
||||
void _xbus_Init(_xbus_device zero_dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
POLF=0xf;
|
||||
|
||||
for(i=0;i<15;i++)
|
||||
{
|
||||
xdev[i]=NULL;
|
||||
}
|
||||
|
||||
_xbus_Attach(zero_dev);
|
||||
}
|
||||
|
||||
|
||||
int _xbus_Attach(_xbus_device dev)
|
||||
{
|
||||
int i;
|
||||
for(i=0;i<16;i++)if(!xdev[i])break;
|
||||
|
||||
if(i==16)return -1;
|
||||
|
||||
xdev[i]=dev;
|
||||
(*xdev[i])(XBP_INIT,NULL);
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
void _xbus_DevLoad(int dev, const char * name)
|
||||
{
|
||||
(*xdev[dev])(XBP_RESET,(void*)name);
|
||||
}
|
||||
|
||||
void _xbus_DevEject(int dev)
|
||||
{
|
||||
(*xdev[dev])(XBP_RESET,NULL);
|
||||
}
|
||||
|
||||
void _xbus_Destroy()
|
||||
{
|
||||
for(int i=0;i<16;i++)if(xdev[i]){(*xdev[i])(XBP_DESTROY,NULL);xdev[i]=NULL;}
|
||||
}
|
||||
|
||||
unsigned int _xbus_SaveSize()
|
||||
{
|
||||
unsigned int tmp=sizeof(XBUSDatum);
|
||||
int i;
|
||||
tmp+=16*4;
|
||||
for(i=0;i<15;i++)
|
||||
{
|
||||
if(!xdev[i])continue;
|
||||
tmp+=(uintptr_t)(*xdev[i])(XBP_GET_SAVESIZE,NULL);
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
|
||||
#include <memory.h>
|
||||
|
||||
void _xbus_Save(void *buff)
|
||||
{
|
||||
int i,off,j,tmp;
|
||||
memcpy(buff,&xbus,sizeof(XBUSDatum));
|
||||
j=off=sizeof(XBUSDatum);
|
||||
off+=16*4;
|
||||
for(i=0;i<15;i++)
|
||||
{
|
||||
if(!xdev[i])
|
||||
{
|
||||
tmp=0;
|
||||
memcpy(&((unsigned char*)buff)[j+i*4],&tmp,4);
|
||||
}
|
||||
else
|
||||
{
|
||||
(*xdev[i])(XBP_GET_SAVEDATA,&((unsigned char*)buff)[off]);
|
||||
memcpy(&((unsigned char*)buff)[j+i*4],&off,4);
|
||||
off+=(uintptr_t)(*xdev[i])(XBP_GET_SAVESIZE,NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void _xbus_Load(void *buff)
|
||||
{
|
||||
//AString tstr;
|
||||
int i,offd,j;
|
||||
|
||||
j=sizeof(XBUSDatum);
|
||||
|
||||
|
||||
memcpy(&xbus,buff,j);
|
||||
for(i=0;i<15;i++)
|
||||
{
|
||||
memcpy(&offd,&((unsigned char*)buff)[j+i*4],4);
|
||||
if(xdev[i])
|
||||
{
|
||||
if(!offd)
|
||||
{
|
||||
(*xdev[i])(XBP_RESET,NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
(*xdev[i])(XBP_SET_SAVEDATA,&((unsigned char*)buff)[offd]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
// XBUS.h: interface for the CXBUS class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef XBUS_3DO_HEADER
|
||||
#define XBUS_3DO_HEADER
|
||||
#include "IsoXBUS.h"
|
||||
//interface functions
|
||||
typedef void* (*_xbus_device)(int, void*);
|
||||
int _xbus_Attach(_xbus_device dev);
|
||||
|
||||
void _xbus_DevLoad(int dev, const char * name); //!!!
|
||||
void _xbus_DevEject(int dev); //!!!
|
||||
|
||||
void _xbus_Init(_xbus_device zero_dev);
|
||||
void _xbus_Destroy();
|
||||
|
||||
void _xbus_SetSEL(unsigned int val);
|
||||
void _xbus_SetPoll(unsigned int val);
|
||||
void _xbus_SetCommandFIFO(unsigned int val);
|
||||
void _xbus_SetDataFIFO(unsigned int val);
|
||||
|
||||
unsigned int _xbus_GetStatusFIFO();
|
||||
unsigned int _xbus_GetRes();
|
||||
unsigned int _xbus_GetPoll();
|
||||
unsigned int _xbus_GetDataFIFO();
|
||||
|
||||
unsigned int _xbus_SaveSize();
|
||||
void _xbus_Save(void *buff);
|
||||
void _xbus_Load(void *buff);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,333 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
#include "freedoconfig.h"
|
||||
#include "freedocore.h"
|
||||
#include "stdafx.h"
|
||||
#include "arm.h"
|
||||
#include "vdlp.h"
|
||||
#include "DSP.h"
|
||||
#include "Clio.h"
|
||||
//#include "frame.h"
|
||||
#include "Madam.h"
|
||||
#include "SPORT.h"
|
||||
#include "XBUS.h"
|
||||
#include "DiagPort.h"
|
||||
#include "quarz.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
_ext_Interface io_interface;
|
||||
|
||||
extern void* Getp_NVRAM();
|
||||
extern void* Getp_ROMS();
|
||||
extern void* Getp_RAMS();
|
||||
extern int ARM_CLOCK;
|
||||
extern int THE_ARM_CLOCK;
|
||||
|
||||
__inline uint32 _bswap(uint32 x)
|
||||
{
|
||||
return (x>>24) | ((x>>8)&0x0000FF00L) | ((x&0x0000FF00L)<<8) | (x<<24);
|
||||
}
|
||||
|
||||
|
||||
extern void* _xbplug_MainDevice(int proc, void* data);
|
||||
int _3do_Init()
|
||||
{
|
||||
unsigned char *Memory;
|
||||
unsigned char *rom;
|
||||
|
||||
Memory=_arm_Init();
|
||||
|
||||
io_interface(EXT_READ_ROMS,Getp_ROMS());
|
||||
rom=(unsigned char*)Getp_ROMS();
|
||||
for(int i=(1024*1024*2)-4;i>=0;i-=4) *(int *)(rom+i)=_bswap(*(int *)(rom+i));
|
||||
|
||||
_vdl_Init(Memory+0x200000); // Visible only VRAM to it
|
||||
_sport_Init(Memory+0x200000); // Visible only VRAM to it
|
||||
_madam_Init(Memory);
|
||||
|
||||
_xbus_Init(_xbplug_MainDevice);
|
||||
|
||||
_clio_Init(0x40); // 0x40 for start from 3D0-CD, 0x01/0x02 from PhotoCD ?? (NO use 0x40/0x02 for BIOS test)
|
||||
_dsp_Init();
|
||||
//_frame_Init();
|
||||
_diag_Init(-1); // Select test, use -1 -- if d'nt need tests
|
||||
/*
|
||||
00 DIAGNOSTICS TEST (run of test: 1F, 24, 25, 32, 50, 51, 60, 61, 62, 68, 71, 75, 80, 81, 90)
|
||||
01 AUTO-DIAG TEST (run of test: 1F, 24, 25, 32, 50, 51, 60, 61, 62, 68, 80, 81, 90)
|
||||
12 DRAM1 DATA TEST
|
||||
1A DRAM2 DATA TEST
|
||||
1E EARLY RAM TEST
|
||||
1F RAM DATA TEST
|
||||
22 VRAM1 DATA TEST
|
||||
24 VRAM1 FLASH TEST
|
||||
25 VRAM1 SPORT TEST
|
||||
32 SRAM DATA TEST
|
||||
50 MADAM TEST
|
||||
51 CLIO TEST
|
||||
60 CD-ROM POLL TEST
|
||||
61 CD-ROM PATH TEST
|
||||
62 CD-ROM READ TEST ???
|
||||
63 CD-ROM AutoAdjustValue TEST
|
||||
67 CD-ROM#2 AutoAdjustValue TEST
|
||||
68 DEV#15 POLL TEST
|
||||
71 JOYPAD1 PRESS TEST
|
||||
75 JOYPAD1 AUDIO TEST
|
||||
80 SIN WAVE TEST
|
||||
81 MUTING TEST
|
||||
90 COLORBAR
|
||||
F0 CHECK TESTTOOL ???
|
||||
F1 REVISION TEST
|
||||
FF TEST END (halt)
|
||||
*/
|
||||
_xbus_DevLoad(0,NULL);
|
||||
|
||||
_qrz_Init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
VDLFrame *curr_frame;
|
||||
bool scipframe;
|
||||
void _3do_InternalFrame(int cicles)
|
||||
{
|
||||
int line;
|
||||
_qrz_PushARMCycles(cicles);
|
||||
if(_qrz_QueueDSP())
|
||||
{
|
||||
io_interface(EXT_PUSH_SAMPLE,(void*)_dsp_Loop());
|
||||
}
|
||||
if(_qrz_QueueTimer())_clio_DoTimers();
|
||||
if(_qrz_QueueVDL())
|
||||
{
|
||||
line=_qrz_VDCurrLine();
|
||||
_clio_UpdateVCNT(line, _qrz_VDHalfFrame());
|
||||
if(!scipframe)_vdl_DoLineNew(line,curr_frame);
|
||||
if(line==16 && scipframe) io_interface(EXT_FRAMETRIGGER_MT,NULL);
|
||||
if(line==_clio_v0line())
|
||||
{
|
||||
_clio_GenerateFiq(1<<0,0);
|
||||
}
|
||||
if(line==_clio_v1line())
|
||||
{
|
||||
_clio_GenerateFiq(1<<1,0);
|
||||
_madam_KeyPressed((unsigned char*)io_interface(EXT_GETP_PBUSDATA,NULL),(intptr_t)io_interface(EXT_GET_PBUSLEN,NULL));
|
||||
curr_frame->srcw=320;
|
||||
curr_frame->srch=240;
|
||||
if(!scipframe)curr_frame=(VDLFrame*)io_interface(EXT_SWAPFRAME,curr_frame);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void __fastcall _3do_Frame(VDLFrame *frame, bool __scipframe=false)
|
||||
{
|
||||
int i,cnt=0;
|
||||
|
||||
curr_frame=frame;
|
||||
scipframe=__scipframe;
|
||||
|
||||
for(i=0;i<(12500000/60);)
|
||||
{
|
||||
|
||||
if(Get_madam_FSM()==FSM_INPROCESS)
|
||||
{
|
||||
_madam_HandleCEL();
|
||||
Set_madam_FSM(FSM_IDLE);
|
||||
continue;
|
||||
}
|
||||
|
||||
cnt+=_arm_Execute();
|
||||
if(cnt>>4){_3do_InternalFrame(cnt);i+=cnt;cnt=0;}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void _3do_Destroy()
|
||||
{
|
||||
_arm_Destroy();
|
||||
_xbus_Destroy();
|
||||
}
|
||||
|
||||
unsigned int _3do_SaveSize()
|
||||
{
|
||||
unsigned int tmp;
|
||||
tmp=_arm_SaveSize();
|
||||
tmp+=_vdl_SaveSize();
|
||||
tmp+=_dsp_SaveSize();
|
||||
tmp+=_clio_SaveSize();
|
||||
tmp+=_qrz_SaveSize();
|
||||
tmp+=_sport_SaveSize();
|
||||
tmp+=_madam_SaveSize();
|
||||
tmp+=_xbus_SaveSize();
|
||||
tmp+=16*4;
|
||||
return tmp;
|
||||
}
|
||||
void _3do_Save(void *buff)
|
||||
{
|
||||
unsigned char *data=(unsigned char*)buff;
|
||||
int *indexes=(int*)buff;
|
||||
|
||||
indexes[0]=0x97970101;
|
||||
indexes[1]=16*4;
|
||||
indexes[2]=indexes[1]+_arm_SaveSize();
|
||||
indexes[3]=indexes[2]+_vdl_SaveSize();
|
||||
indexes[4]=indexes[3]+_dsp_SaveSize();
|
||||
indexes[5]=indexes[4]+_clio_SaveSize();
|
||||
indexes[6]=indexes[5]+_qrz_SaveSize();
|
||||
indexes[7]=indexes[6]+_sport_SaveSize();
|
||||
indexes[8]=indexes[7]+_madam_SaveSize();
|
||||
indexes[9]=indexes[8]+_xbus_SaveSize();
|
||||
|
||||
_arm_Save(&data[indexes[1]]);
|
||||
_vdl_Save(&data[indexes[2]]);
|
||||
_dsp_Save(&data[indexes[3]]);
|
||||
_clio_Save(&data[indexes[4]]);
|
||||
_qrz_Save(&data[indexes[5]]);
|
||||
_sport_Save(&data[indexes[6]]);
|
||||
_madam_Save(&data[indexes[7]]);
|
||||
_xbus_Save(&data[indexes[8]]);
|
||||
|
||||
}
|
||||
|
||||
bool _3do_Load(void *buff)
|
||||
{
|
||||
unsigned char *data=(unsigned char*)buff;
|
||||
int *indexes=(int*)buff;
|
||||
if((unsigned int)indexes[0]!=0x97970101)return false;
|
||||
|
||||
_arm_Load(&data[indexes[1]]);
|
||||
_vdl_Load(&data[indexes[2]]);
|
||||
_dsp_Load(&data[indexes[3]]);
|
||||
_clio_Load(&data[indexes[4]]);
|
||||
_qrz_Load(&data[indexes[5]]);
|
||||
_sport_Load(&data[indexes[6]]);
|
||||
_madam_Load(&data[indexes[7]]);
|
||||
_xbus_Load(&data[indexes[8]]);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
extern uint32 *profiling;
|
||||
|
||||
void _3do_OnSector(unsigned int sector)
|
||||
{
|
||||
io_interface(EXT_ON_SECTOR,(void*)sector);
|
||||
}
|
||||
|
||||
void _3do_Read2048(void *buff)
|
||||
{
|
||||
io_interface(EXT_READ2048,(void*)buff);
|
||||
}
|
||||
|
||||
unsigned int _3do_DiscSize()
|
||||
{
|
||||
return (uintptr_t)io_interface(EXT_GET_DISC_SIZE,NULL);
|
||||
}
|
||||
|
||||
int __tex__scaler = 0;
|
||||
//int HightResMode=0;
|
||||
int fixmode=0;
|
||||
int speedfixes=0;
|
||||
int sf=0;
|
||||
int sdf=0;
|
||||
int unknownflag11=0;
|
||||
int jw=0;
|
||||
int cnbfix=0;
|
||||
FREEDOCORE_API void* __stdcall _freedo_Interface(int procedure, void *datum)
|
||||
{
|
||||
int line;
|
||||
switch(procedure)
|
||||
{
|
||||
case FDP_INIT:
|
||||
sf=5000000;
|
||||
cnbfix=0;
|
||||
io_interface=(_ext_Interface)datum;
|
||||
return (void*)_3do_Init();
|
||||
case FDP_DESTROY:
|
||||
_3do_Destroy();
|
||||
break;
|
||||
case FDP_DO_EXECFRAME:
|
||||
_3do_Frame((VDLFrame*)datum);
|
||||
break;
|
||||
case FDP_DO_EXECFRAME_MT:
|
||||
_3do_Frame((VDLFrame*)datum, true);
|
||||
break;
|
||||
case FDP_DO_FRAME_MT:
|
||||
line=0;
|
||||
while(line<256)_vdl_DoLineNew(line++,(VDLFrame*)datum);
|
||||
break;
|
||||
case FDP_GET_SAVE_SIZE:
|
||||
return (void*)_3do_SaveSize();
|
||||
case FDP_DO_SAVE:
|
||||
_3do_Save(datum);
|
||||
break;
|
||||
case FDP_DO_LOAD:
|
||||
sf=0;
|
||||
return (void*)_3do_Load(datum);
|
||||
case FDP_GETP_NVRAM:
|
||||
return Getp_NVRAM();
|
||||
case FDP_GETP_RAMS:
|
||||
return Getp_RAMS();
|
||||
case FDP_GETP_ROMS:
|
||||
return Getp_ROMS();
|
||||
case FDP_GETP_PROFILE:
|
||||
return profiling;
|
||||
case FDP_FREEDOCORE_VERSION:
|
||||
return (void*)0x20008;
|
||||
case FDP_SET_ARMCLOCK:
|
||||
THE_ARM_CLOCK=0;
|
||||
ARM_CLOCK=(intptr_t)datum;
|
||||
break;
|
||||
case FDP_SET_TEXQUALITY:
|
||||
__tex__scaler=(intptr_t)datum;
|
||||
break;
|
||||
// case FDP_SET_FIX_MODE:
|
||||
// fixmode=(intptr_t)datum;
|
||||
// break;
|
||||
// case FDP_GET_FRAME_BITMAP:
|
||||
// GetFrameBitmapParams* param = (GetFrameBitmapParams*)datum;
|
||||
// Get_Frame_Bitmap(
|
||||
// param->sourceFrame
|
||||
// , param->destinationBitmap
|
||||
// , param->destinationBitmapWidthPixels
|
||||
// , param->bitmapCrop
|
||||
// , param->copyWidthPixels
|
||||
// , param->copyHeightPixels
|
||||
// , param->addBlackBorder
|
||||
// , param->copyPointlessAlphaByte
|
||||
// , param->allowCrop
|
||||
// , (ScalingAlgorithm)param->scalingAlgorithm
|
||||
// , ¶m->resultingWidth
|
||||
// , ¶m->resultingHeight);
|
||||
// break;
|
||||
};
|
||||
|
||||
return NULL;
|
||||
}
|
||||
+1896
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
// CPU.h: interface for the CCPU class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef ARM_3DO_HEADER
|
||||
#define ARM_3DO_HEADER
|
||||
|
||||
|
||||
|
||||
int __fastcall _arm_Execute();
|
||||
void _arm_Reset();
|
||||
void _arm_Destroy();
|
||||
unsigned char * _arm_Init();
|
||||
|
||||
//for mas
|
||||
void __fastcall _mem_write8(unsigned int addr, unsigned char val);
|
||||
void __fastcall _mem_write16(unsigned int addr, unsigned short val);
|
||||
void __fastcall _mem_write32(unsigned int addr, unsigned int val);
|
||||
unsigned char __fastcall _mem_read8(unsigned int addr);
|
||||
unsigned short __fastcall _mem_read16(unsigned int addr);
|
||||
unsigned int __fastcall _mem_read32(unsigned int addr);
|
||||
|
||||
void __fastcall WriteIO(unsigned int addr, unsigned int val);
|
||||
unsigned int __fastcall ReadIO(unsigned int addr);
|
||||
void __fastcall SelectROM(int n);
|
||||
|
||||
unsigned int _arm_SaveSize();
|
||||
void _arm_Save(void *buff);
|
||||
void _arm_Load(void *buff);
|
||||
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
#include "freedoconfig.h"
|
||||
#include "bitop.h"
|
||||
#include "arm.h"
|
||||
|
||||
|
||||
uint32 BitReaderBig::Read()
|
||||
{
|
||||
const static uint8 mas[]={0,1,3,7,15,31,63,127,255};
|
||||
uint32 retval=0;
|
||||
int32 bitcnt=bitset;
|
||||
if(!buf)return retval;
|
||||
if((8-bitpoint)>bitset)
|
||||
{
|
||||
retval=_mem_read8(buf+(point^3));
|
||||
retval>>=8-bitpoint-bitset;
|
||||
retval&=mas[bitset];
|
||||
bitpoint+=bitset;
|
||||
return retval;
|
||||
}
|
||||
if(bitpoint)
|
||||
{
|
||||
retval=_mem_read8(buf+(point^3))&mas[8-bitpoint];
|
||||
point++;
|
||||
bitcnt-=8-bitpoint;
|
||||
}
|
||||
while(bitcnt>=8)
|
||||
{
|
||||
retval<<=8;
|
||||
retval|=_mem_read8(buf+(point^3));
|
||||
point++;
|
||||
bitcnt-=8;
|
||||
}
|
||||
if(bitcnt)
|
||||
{
|
||||
retval<<=bitcnt;
|
||||
retval|=_mem_read8(buf+(point^3))>>(8-bitcnt);
|
||||
}
|
||||
bitpoint=bitcnt;
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
uint32 BitReaderBig::Read(uint8 bits)
|
||||
{
|
||||
SetBitRate(bits);
|
||||
return Read();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
#ifndef BITOPCLASS_DEFINITION_HEADER
|
||||
#define BITOPCLASS_DEFINITION_HEADER
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class BitReaderBig
|
||||
{
|
||||
protected:
|
||||
uint32 buf;
|
||||
uint32 point;
|
||||
int32 bitpoint;
|
||||
int32 bitset;
|
||||
|
||||
public:
|
||||
BitReaderBig()
|
||||
{
|
||||
buf=0;
|
||||
bitset=1;
|
||||
point=0;
|
||||
bitpoint=0;
|
||||
};
|
||||
BitReaderBig(uint32 buff)
|
||||
{
|
||||
buf=buff;
|
||||
point=0;
|
||||
bitpoint=0;
|
||||
bitset=1;
|
||||
};
|
||||
void AttachBuffer(uint32 buff)
|
||||
{
|
||||
buf=buff;
|
||||
point=0;
|
||||
bitpoint=0;
|
||||
};
|
||||
void SetBitRate(uint8 bits)
|
||||
{
|
||||
bitset=bits;
|
||||
if(bitset>32)bitset=32;
|
||||
if(!bitset)bitset=1;
|
||||
};
|
||||
|
||||
void SetPosition(uint32 bytepos, uint8 bitpos)
|
||||
{
|
||||
point=bytepos;
|
||||
bitpoint=bitpos;
|
||||
};
|
||||
|
||||
void SetPos(uint32 bitpos){SetPosition(bitpos>>3,bitpos&7);};
|
||||
|
||||
uint32 GetBytePose(){return point;};
|
||||
|
||||
uint32 Read();
|
||||
uint32 Read(uint8 bits);
|
||||
|
||||
void Skip(uint32 bits)
|
||||
{
|
||||
bits+=bitpoint;
|
||||
point+=(bits>>3);
|
||||
bitpoint=bits&7;
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
#ifndef FREEDOCONFIG_H
|
||||
#define FREEDOCONFIG_H
|
||||
|
||||
#ifdef __MSVC__
|
||||
//#include <stdafx.h>
|
||||
#include <windows.h>
|
||||
|
||||
#define __temporalfixes 0
|
||||
#define RESSCALE __tex__scaler
|
||||
|
||||
extern int __tex__scaler;
|
||||
|
||||
#else
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
||||
|
||||
extern bool __temporalfixes;
|
||||
extern int HightResMode;
|
||||
#define RESSCALE HightResMode
|
||||
#define DEBUG_CORE
|
||||
#define _T(a) (a)
|
||||
#endif
|
||||
|
||||
#include "types.h"
|
||||
|
||||
|
||||
#endif // FREEDOCONFIG_H
|
||||
@@ -0,0 +1,154 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
#ifndef __3DO_SYSTEM_HEADER_DEFINITION
|
||||
#define __3DO_SYSTEM_HEADER_DEFINITION
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
#pragma pack(push,1)
|
||||
|
||||
struct VDLLine
|
||||
//VDLP Line - one VDLP line per patent
|
||||
{
|
||||
unsigned short line[320*4];//,line2[320*2*16];
|
||||
unsigned char xCLUTB[32];
|
||||
unsigned char xCLUTG[32];
|
||||
unsigned char xCLUTR[32];
|
||||
unsigned int xOUTCONTROLL;
|
||||
unsigned int xCLUTDMA;
|
||||
unsigned int xBACKGROUND;
|
||||
};
|
||||
struct VDLFrame
|
||||
{
|
||||
VDLLine lines[240*4];
|
||||
unsigned int srcw,srch;
|
||||
};
|
||||
|
||||
struct BitmapCrop
|
||||
{
|
||||
int left;
|
||||
int top;
|
||||
int bottom;
|
||||
int right;
|
||||
};
|
||||
|
||||
struct GetFrameBitmapParams
|
||||
{
|
||||
VDLFrame* sourceFrame;
|
||||
void* destinationBitmap;
|
||||
int destinationBitmapWidthPixels;
|
||||
BitmapCrop* bitmapCrop;
|
||||
int copyWidthPixels;
|
||||
int copyHeightPixels;
|
||||
bool addBlackBorder;
|
||||
bool copyPointlessAlphaByte;
|
||||
bool allowCrop;
|
||||
int scalingAlgorithm;
|
||||
int resultingWidth;
|
||||
int resultingHeight;
|
||||
};
|
||||
|
||||
enum ScalingAlgorithm
|
||||
{
|
||||
None = 0,
|
||||
HQ2X = 1,
|
||||
HQ3X = 2,
|
||||
HQ4X = 3
|
||||
};
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#define EXT_READ_ROMS 1
|
||||
#define EXT_READ_NVRAM 2
|
||||
#define EXT_WRITE_NVRAM 3
|
||||
#define EXT_SWAPFRAME 5 //frame swap (in mutlithreaded) or frame draw(single treaded)
|
||||
#define EXT_PUSH_SAMPLE 6 //sends sample to the buffer
|
||||
#define EXT_GET_PBUSLEN 7
|
||||
#define EXT_GETP_PBUSDATA 8
|
||||
#define EXT_KPRINT 9
|
||||
#define EXT_DEBUG_PRINT 10
|
||||
#define EXT_FRAMETRIGGER_MT 12 //multitasking
|
||||
#define EXT_READ2048 14 //for XBUS Plugin
|
||||
#define EXT_GET_DISC_SIZE 15
|
||||
#define EXT_ON_SECTOR 16
|
||||
#define EXT_ARM_SYNC 17
|
||||
typedef void* (__stdcall *_ext_Interface)(int, void*);
|
||||
|
||||
#define FDP_FREEDOCORE_VERSION 0
|
||||
#define FDP_INIT 1 //set ext_interface
|
||||
#define FDP_DESTROY 2
|
||||
#define FDP_DO_EXECFRAME 3 //execute 1/60 of second
|
||||
#define FDP_DO_FRAME_MT 4 //multitasking
|
||||
#define FDP_DO_EXECFRAME_MT 5 //multitasking
|
||||
#define FDP_DO_LOAD 6 //load state from buffer, returns !NULL if everything went smooth
|
||||
#define FDP_GET_SAVE_SIZE 7 //return size of savestatemachine
|
||||
#define FDP_DO_SAVE 8 //save state to buffer
|
||||
#define FDP_GETP_NVRAM 9 //returns ptr to NVRAM 32K
|
||||
#define FDP_GETP_RAMS 10 //returns ptr to RAM 3M
|
||||
#define FDP_GETP_ROMS 11 //returns ptr to ROM 2M
|
||||
#define FDP_GETP_PROFILE 12 //returns profile pointer, sizeof = 3M/4
|
||||
#define FDP_BUGTEMPORALFIX 13
|
||||
#define FDP_SET_ARMCLOCK 14
|
||||
#define FDP_SET_TEXQUALITY 15
|
||||
#define FDP_GETP_WRCOUNT 16
|
||||
#define FDP_SET_FIX_MODE 17
|
||||
#define FDP_GET_FRAME_BITMAP 18
|
||||
|
||||
#define FIX_BIT_TIMING_1 (0x00000001)
|
||||
#define FIX_BIT_TIMING_2 (0x00000002)
|
||||
#define FIX_BIT_TIMING_3 (0x00000004)
|
||||
#define FIX_BIT_TIMING_4 (0x00000008)
|
||||
#define FIX_BIT_TIMING_5 (0x00000010)
|
||||
#define FIX_BIT_TIMING_6 (0x00000020)
|
||||
#define FIX_BIT_TIMING_7 (0x00000040)
|
||||
#define FIX_BIT_GRAPHICS_STEP_Y (0x00080000) // Preserve Y coordinate rather than X between CELs.
|
||||
|
||||
#ifdef __MSVC__
|
||||
|
||||
#ifdef FREEDOCORE_EXPORTS
|
||||
#define FREEDOCORE_API __declspec(dllexport)
|
||||
#else
|
||||
#define FREEDOCORE_API __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
|
||||
#else
|
||||
|
||||
#define FREEDOCORE_API
|
||||
|
||||
#endif
|
||||
|
||||
extern "C"
|
||||
{
|
||||
FREEDOCORE_API void* __stdcall _freedo_Interface(int procedure, void *datum=0);
|
||||
};
|
||||
|
||||
#ifdef __MSVC__
|
||||
#ifndef FREEDOCORE_EXPORTS
|
||||
//#pragma comment(lib, "freedocore.lib")
|
||||
#endif
|
||||
#endif
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,13 @@
|
||||
#-------------------------------------------------
|
||||
#
|
||||
# Project created by QtCreator 2010-11-10T21:13:39
|
||||
#
|
||||
#-------------------------------------------------
|
||||
|
||||
TARGET = freedo
|
||||
TEMPLATE = lib
|
||||
CONFIG += staticlib
|
||||
|
||||
SOURCES += arm.cpp bitop.cpp Clio.cpp DiagPort.cpp DSP.cpp Iso.cpp Madam.cpp quarz.cpp SPORT.cpp vdlp.cpp XBUS.cpp _3do_sys.cpp
|
||||
|
||||
HEADERS += arm.h bitop.h Clio.h DiagPort.h DSP.h freedoconfig.h freedocore.h IsoXBUS.h Madam.h quarz.h SPORT.h types.h vdlp.h XBUS.h
|
||||
@@ -0,0 +1,179 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
|
||||
#include "quarz.h"
|
||||
#include "types.h"
|
||||
#include "clio.h"
|
||||
#include "vdlp.h"
|
||||
#include "XBUS.h"
|
||||
#include "madam.h"
|
||||
#include "stdafx.h"
|
||||
|
||||
int ARM_CLOCK=12500000;
|
||||
int THE_ARM_CLOCK=0;
|
||||
extern _ext_Interface io_interface;
|
||||
#define SND_CLOCK 44100
|
||||
//#define NTSC_CLOCK 12270000 //818*500(ñòðîê) //15 ÊÃö
|
||||
//#define PAL_CLOCK 14750000 //944*625(ñòðîê) //15625 Ãö
|
||||
|
||||
|
||||
#pragma pack(push,1)
|
||||
struct QDatum
|
||||
{
|
||||
uint32 qrz_AccARM;
|
||||
uint32 qrz_AccDSP;
|
||||
uint32 qrz_AccVDL;
|
||||
uint32 qrz_TCount;
|
||||
uint32 VDL_CLOCK, qrz_vdlline, VDL_HS,VDL_FS;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
static QDatum quarz;
|
||||
|
||||
#include <memory.h>
|
||||
unsigned int _qrz_SaveSize()
|
||||
{
|
||||
return sizeof(QDatum);
|
||||
}
|
||||
void _qrz_Save(void *buff)
|
||||
{
|
||||
memcpy(buff,&quarz,sizeof(QDatum));
|
||||
}
|
||||
void _qrz_Load(void *buff)
|
||||
{
|
||||
memcpy(&quarz,buff,sizeof(QDatum));
|
||||
}
|
||||
|
||||
#define qrz_AccARM quarz.qrz_AccARM
|
||||
#define qrz_AccDSP quarz.qrz_AccDSP
|
||||
#define qrz_AccVDL quarz.qrz_AccVDL
|
||||
#define qrz_TCount quarz.qrz_TCount
|
||||
#define VDL_CLOCK quarz.VDL_CLOCK
|
||||
#define qrz_vdlline quarz.qrz_vdlline
|
||||
#define VDL_HS quarz.VDL_HS
|
||||
#define VDL_FS quarz.VDL_FS
|
||||
|
||||
void __fastcall _qrz_Init()
|
||||
{
|
||||
qrz_AccVDL=qrz_AccDSP=0;
|
||||
qrz_AccARM=0;
|
||||
|
||||
VDL_FS=526;
|
||||
VDL_CLOCK=VDL_FS*30;
|
||||
VDL_HS=VDL_FS/2;
|
||||
|
||||
qrz_TCount=0;
|
||||
qrz_vdlline=0;
|
||||
}
|
||||
|
||||
int __fastcall _qrz_VDCurrLine()
|
||||
{
|
||||
return qrz_vdlline%(VDL_HS/*+(VDL_HS/2)*/);
|
||||
}
|
||||
int __fastcall _qrz_VDHalfFrame()
|
||||
{
|
||||
return qrz_vdlline/(VDL_HS);
|
||||
}
|
||||
|
||||
int __fastcall _qrz_VDCurrOverline()
|
||||
{
|
||||
return qrz_vdlline;
|
||||
}
|
||||
|
||||
bool __fastcall _qrz_QueueVDL()
|
||||
{
|
||||
if(qrz_AccVDL>>24)
|
||||
{
|
||||
qrz_AccVDL-=0x1000000;
|
||||
qrz_vdlline++;
|
||||
qrz_vdlline%=VDL_FS;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
bool __fastcall _qrz_QueueDSP()
|
||||
{
|
||||
if(qrz_AccDSP>>24)
|
||||
{
|
||||
//if(HightResMode!=0) qrz_AccDSP-=0x1000000/1.3;
|
||||
//else
|
||||
qrz_AccDSP-=0x1000000;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool __fastcall _qrz_QueueTimer()
|
||||
{
|
||||
//uint32 cnt=_clio_GetTimerDelay();
|
||||
if(qrz_TCount>>24)//=cnt)
|
||||
{
|
||||
qrz_TCount-=0x1000000;//cnt;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void __fastcall _qrz_PushARMCycles(unsigned int clks)
|
||||
{
|
||||
uint32 arm,cnt;
|
||||
int timers=21000000; //default
|
||||
int sp=0;
|
||||
if(sdf>0) sdf--;
|
||||
if(sf>0) sf--;
|
||||
if(unknownflag11>0)unknownflag11--;
|
||||
if(ARM_CLOCK<0x5F5E10)ARM_CLOCK=0x5F5E10;
|
||||
if(ARM_CLOCK>0x2FAF080)ARM_CLOCK=0x2FAF080;
|
||||
if(speedfixes>0&&speedfixes<0x186A1) {/*sp=0x2DC6C0;*/ speedfixes--;}
|
||||
else if(speedfixes>0x186A1&&speedfixes<0x30D41) {/*if(sdf==0)sp=0x4C4B40; */speedfixes--;}
|
||||
else if(speedfixes<0) {sp=0x3D0900; speedfixes++;}
|
||||
else if(speedfixes>0x30D41) {/*sp=0x249F00;*/ speedfixes--;}
|
||||
else if(speedfixes==0x30D41||speedfixes==0x186A1) speedfixes=0;
|
||||
if((fixmode&FIX_BIT_TIMING_2)&&sf<=2500000) {sp=0; timers=21000000; if(sf==0)sp=-(0x1C9C380-ARM_CLOCK);}
|
||||
if((fixmode&FIX_BIT_TIMING_1)/*&&jw>0*/&&sf<=1500000){/*jw--;*/timers=1000000;sp=-1000000;}
|
||||
if((fixmode&FIX_BIT_TIMING_4)/*&&jw>0*/){/*jw--;*/timers=1000000;sp=-1000000;}
|
||||
if((fixmode&FIX_BIT_TIMING_3)&&(sf>0&&sf<=100000)/*&&jw>0*/){/*jw--;*/timers=900000;}
|
||||
if((fixmode&FIX_BIT_TIMING_5)&&sf==0/*&&jw>0*/){/*jw--;*/timers=1000000;}
|
||||
if((fixmode&FIX_BIT_TIMING_6)/*&&jw>0*/){/*jw--;*/timers=1000000; if(sf<=80000)sp=-23000000;}
|
||||
if(fixmode&FIX_BIT_TIMING_7){sp=-3000000; timers=21000000;}
|
||||
if((sf>0x186A0&&!(fixmode&FIX_BIT_TIMING_2))||((fixmode&FIX_BIT_TIMING_2)&&sf>2500000))sp=-(12200000-ARM_CLOCK);
|
||||
if((ARM_CLOCK-sp)<0x2DC6C0)sp=-(0x2DC6C0-ARM_CLOCK);
|
||||
if((ARM_CLOCK-sp)!=THE_ARM_CLOCK)
|
||||
{ THE_ARM_CLOCK=(ARM_CLOCK-sp);
|
||||
io_interface(EXT_ARM_SYNC,(void*)THE_ARM_CLOCK); //fix for working with 4do
|
||||
}
|
||||
arm=(clks<<24)/(ARM_CLOCK-sp);
|
||||
qrz_AccARM+=arm*(ARM_CLOCK-sp);
|
||||
if( (qrz_AccARM>>24) != clks )
|
||||
{
|
||||
arm++;
|
||||
qrz_AccARM+=ARM_CLOCK;
|
||||
qrz_AccARM&=0xffffff;
|
||||
}
|
||||
qrz_AccDSP+=arm*SND_CLOCK;
|
||||
qrz_AccVDL+=arm*(VDL_CLOCK);
|
||||
|
||||
//if(Get_madam_FSM()!=FSM_INPROCESS)
|
||||
if(_clio_GetTimerDelay())qrz_TCount+=arm*((timers)/(_clio_GetTimerDelay()));//clks<<1;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
#ifndef QUARZ_3DO_HEADER_DEFINTION
|
||||
#define QUARZ_3DO_HEADER_DEFINTION
|
||||
|
||||
void __fastcall _qrz_Init();
|
||||
|
||||
int __fastcall _qrz_VDCurrLine();
|
||||
int __fastcall _qrz_VDHalfFrame();
|
||||
int __fastcall _qrz_VDCurrOverline();
|
||||
|
||||
bool __fastcall _qrz_QueueVDL();
|
||||
bool __fastcall _qrz_QueueDSP();
|
||||
bool __fastcall _qrz_QueueTimer();
|
||||
|
||||
void __fastcall _qrz_PushARMCycles(unsigned int clks);
|
||||
|
||||
unsigned int _qrz_SaveSize();
|
||||
void _qrz_Save(void *buff);
|
||||
void _qrz_Load(void *buff);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
// stdafx.h : include file for standard system include files,
|
||||
// or project specific include files that are used frequently, but
|
||||
// are changed infrequently
|
||||
//
|
||||
|
||||
#ifndef AFX_STDAFX_H__MAZAFAKING_HEADER
|
||||
#define AFX_STDAFX_H__MAZAFAKING_HEADER
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
||||
|
||||
//#include "astring.h"
|
||||
#include "types.h"
|
||||
|
||||
extern int fixmode;
|
||||
extern int speedfixes;
|
||||
extern int sf;
|
||||
extern int sdf;
|
||||
extern int unknownflag11;
|
||||
extern int HightResMode;
|
||||
extern int jw;
|
||||
extern int cnbfix;
|
||||
|
||||
#define DEBUG_CORE
|
||||
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
www.freedo.org
|
||||
The first and only working 3DO multiplayer emulator.
|
||||
|
||||
The FreeDO licensed under modified GNU LGPL, with following notes:
|
||||
|
||||
* The owners and original authors of the FreeDO have full right to develop closed source derivative work.
|
||||
* Any non-commercial uses of the FreeDO sources or any knowledge obtained by studying or reverse engineering
|
||||
of the sources, or any other material published by FreeDO have to be accompanied with full credits.
|
||||
* Any commercial uses of FreeDO sources or any knowledge obtained by studying or reverse engineering of the sources,
|
||||
or any other material published by FreeDO is strictly forbidden without owners approval.
|
||||
|
||||
The above notes are taking precedence over GNU LGPL in conflicting situations.
|
||||
|
||||
Project authors:
|
||||
|
||||
Alexander Troosh
|
||||
Maxim Grishin
|
||||
Allen Wright
|
||||
John Sammons
|
||||
Felix Lazarev
|
||||
*/
|
||||
|
||||
/*****************************************************************************
|
||||
Copyright (C) 2007-2008 Maxim Grishin (http://altmer.arts-union.ru)
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef TYPES_HEAD_DEFINITION
|
||||
#define TYPES_HEAD_DEFINITION
|
||||
|
||||
typedef unsigned int uint32;
|
||||
typedef unsigned char uint8;
|
||||
typedef unsigned short uint16;
|
||||
typedef unsigned long long uint64;
|
||||
typedef unsigned long long __uint64;
|
||||
|
||||
typedef int int32;
|
||||
typedef char int8;
|
||||
typedef short int16;
|
||||
typedef signed long long int64;
|
||||
|
||||
#ifndef WIN32
|
||||
#ifndef __int64
|
||||
typedef signed long long __int64;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
typedef float real32;
|
||||
typedef double real64;
|
||||
typedef long double real80;
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL 0
|
||||
#endif
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define __fastcall __attribute__((__fastcall__))
|
||||
#endif
|
||||
//------------------Vector types-------------------------------------------
|
||||
|
||||
#pragma pack(push,1)
|
||||
template <class T> struct point2d { T x,y; };
|
||||
template <class T> struct sprite{ point2d<T> ul,dr; };
|
||||
#pragma pack(pop)
|
||||
//---------------------------------------------------------------------------
|
||||
//--------------------resources------------------------------------------------
|
||||
#pragma pack(push,1)
|
||||
struct imgdata
|
||||
{
|
||||
#define IMDT_BMP32 0
|
||||
#define IMDT_BMP24 1
|
||||
uint32 pref; //0xf - type,....
|
||||
uint32 w,h,d;
|
||||
uint32 data[1];
|
||||
};
|
||||
#pragma pack(pop)
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#endif
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user