Chameleon

Chameleon Commit Details

Date:2016-05-09 15:50:52 (3 years 3 months ago)
Author:ErmaC
Commit:2808
Parents: 2807
Message:sync latest changes from trunk code 2807
Changes:
M/branches/ErmaC/Enoch/i386/libsa/zalloc.c
M/branches/ErmaC/Enoch/i386/libsaio/ati.c
M/branches/ErmaC/Enoch/package/Distribution
M/branches/ErmaC/Enoch/i386/util/boot1-install/Makefile
M/branches/ErmaC/Enoch/i386/boot2/drivers.c
M/branches/ErmaC/Enoch/i386/config/confdata.c
M/branches/ErmaC/Enoch/i386/libsaio/console.c
M/branches/ErmaC/Enoch/i386/libsaio/bootargs.h
M/branches/ErmaC/Enoch/i386/boot2/boot.c
M/branches/ErmaC/Enoch/i386/util/Makefile
M/branches/ErmaC/Enoch/i386/util/fdisk/Makefile
M/branches/ErmaC/Enoch/i386/libsaio/bootstruct.c
M/branches/ErmaC/Enoch/i386/libsaio/fake_efi.c
M/branches/ErmaC/Enoch/i386/boot2/boot.h

File differences

branches/ErmaC/Enoch/i386/libsaio/console.c
266266
267267
268268
269
269270
270271
271272
......
280281
281282
282283
284
283285
286
284287
285288
286289
287
288290
289291
290292
......
301303
302304
303305
306
304307
305308
306309
......
317320
318321
319322
323
320324
325
321326
322327
323
324328
325329
326330
vprf(fmt, ap);
}
}
va_end(ap);
{
// Kabyl: BooterLog
}
pi.str = cursor;
pi.last_str = 0;
va_start(ap, fmt);
prf(fmt, ap, sputc, &pi);
va_end(ap);
cursor += strlen((char *)cursor);
}
va_end(ap);
return(0);
}
{
vprf(fmt, ap);
}
va_end(ap);
// Kabyl: BooterLog
struct putc_info pi;
pi.str = cursor;
pi.last_str = 0;
va_start(ap, fmt);
prf(fmt, ap, sputc, &pi);
va_end(ap);
cursor += strlen((char *)cursor);
va_end(ap);
return(0);
}
branches/ErmaC/Enoch/i386/libsaio/bootstruct.c
4040
4141
4242
43
44
4345
4446
4547
......
150152
151153
152154
155
156
157
153158
154159
155160
......
209214
210215
211216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
212267
213268
214269
#define DBG(x...)msglog(x)
#endif
#define MEG(1024*1024)
/*==========================================================================
* Initialize the structure of parameters passed to
* the kernel by the booter.
void *addr;
int i;
/* Memory size to use for defaults calculations (cparm) */
uint64_tsane_size = 0;
EfiMemoryRange*memoryMap= NULL;
MemoryRange*range= NULL;
int memoryMapCount = bootInfo->memoryMapCount;
memoryMap->VirtualStart= range->base;
memoryMap->NumberOfPages= range->length >> I386_PGSHIFT;
memoryMap->Attribute= 0;
switch (memoryMap->Type)
{
case kEfiLoaderCode:
case kEfiLoaderData:
case kEfiBootServicesCode:
case kEfiBootServicesData:
case kEfiConventionalMemory:
/*
* Consolidate usable memory types into one (cparm).
*/
sane_size += (uint64_t)(memoryMap->NumberOfPages << I386_PGSHIFT);
break;
case kEfiRuntimeServicesCode:
case kEfiRuntimeServicesData:
case kEfiACPIReclaimMemory:
case kEfiACPIMemoryNVS:
case kEfiPalCode:
/*
* sane_size should reflect the total amount of physical ram
* in the system, not just the amount that is available for
* the OS to use (cparm)
*/
sane_size += (uint64_t)(memoryMap->NumberOfPages << I386_PGSHIFT);
break;
default:
break;
}
if (sane_size == 0)
{
// I Guess that if sane_size == 0 we've got a big problem here,
// and it means that the memory map was not converted properly (cparm)
stop("Unable to convert memory map into proper format\n");
return;
}
/*
* For user visible memory size, round up to 128 Mb - accounting for the various stolen memory
* not reported by EFI. (cparm)
*/
#if DEBUG_BOOTSTRUCT
sane_size = (sane_size + 128 * MEG - 1) & ~((uint64_t)(128 * MEG - 1));
DBG( "Total amount of physical RAM in the system : %d\n", ((sane_size + 128 * MEG - 1) & ~((uint64_t)(128 * MEG - 1))) );
#else
DBG( "Total amount of RAM in the system : %d\n", sane_size );
#endif
bootArgs->PhysicalMemorySize = sane_size;
}
// copy bootFile into device tree
branches/ErmaC/Enoch/i386/libsaio/bootargs.h
132132
133133
134134
135
135
136136
137137
138138
139
139140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
140161
141162
142163
......
181202
182203
183204
184
185
186
187205
206
207
208
209
210
211
212
188213
189214
190215
#define kBootArgsFlagHiDPI(1 << 1)
#define kBootArgsFlagBlack(1 << 2)
#define kBootArgsFlagCSRActiveConfig(1 << 3)
#define kBootArgsFlagCSRPendingConfig(1 << 4)
#define kBootArgsFlagCSRConfigMode(1 << 4)
#define kBootArgsFlagCSRBoot(1 << 5)
#define kBootArgsFlagBlackBg(1 << 6)
#define kBootArgsFlagLoginUI(1 << 7)
#define kBootArgsFlagInstallUI(1 << 8)
/* Rootless configuration flags */
// http://www.idelta.info/archives/kext-to-check-sip-rootless-status-on-el-capitan/
#define CSR_ALLOW_UNTRUSTED_KEXTS(1 << 0) /* Allow untrusted kexts */
#define CSR_ALLOW_UNRESTRICTED_FS(1 << 1) /* Allow unrestricted file system. */
#define CSR_ALLOW_TASK_FOR_PID(1 << 2) /* Allow test_for_pid() */
#define CSR_ALLOW_KERNEL_DEBUGGER(1 << 3)
#define CSR_ALLOW_APPLE_INTERNAL(1 << 4)
#define CSR_ALLOW_UNRESTRICTED_DTRACE(1 << 5) /* Allow unrestricted dtrace */
#define CSR_ALLOW_UNRESTRICTED_NVRAM(1 << 6) /* Allow unrestricted NVRAM */
#define CSR_ALLOW_DEVICE_CONFIGURATION(1 << 7) /* Allow device configuration */
#define CSR_VALID_FLAGS (CSR_ALLOW_UNTRUSTED_KEXTS | \
CSR_ALLOW_UNRESTRICTED_FS | \
CSR_ALLOW_TASK_FOR_PID | \
CSR_ALLOW_KERNEL_DEBUGGER | \
CSR_ALLOW_APPLE_INTERNAL | \
CSR_ALLOW_UNRESTRICTED_DTRACE | \
CSR_ALLOW_UNRESTRICTED_NVRAM | \
CSR_ALLOW_DEVICE_CONFIGURATION)
typedef struct boot_args
{
uint16_t Revision;/* Revision of boot_args structure */
uint64_t pciConfigSpaceBaseAddress;
uint32_t pciConfigSpaceStartBusNumber;
uint32_t pciConfigSpaceEndBusNumber;
uint32_tcsrActiveConfig;
uint32_tcsrPendingConfig;
uint32_t __reserved4[728];
uint32_t csrActiveConfig;
uint32_t csrCapabilities;
uint32_t boot_SMC_plimit;
uint16_tbootProgressMeterStart;
uint16_tbootProgressMeterEnd;
uint32_t __reserved4[726];
} boot_args;
typedef struct boot_args_legacy
branches/ErmaC/Enoch/i386/libsaio/ati.c
354354
355355
356356
357
357
358358
359359
360360
{ 0x689D,0x00000000, CHIP_FAMILY_HEMLOCK,"ATI Radeon HD 5900 Series",kUakari},
// CYPRESS
{ 0x689E,0x00000000, CHIP_FAMILY_CYPRESS,"ATI Radeon HD 5800 Series",kUakari},
{ 0x689E,0x00000000, CHIP_FAMILY_CYPRESS,"ATI Radeon HD 5830 Series",kUakari},
// JUNIPER
{ 0x68A0,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 5770 Series",kHoolock}, // Mobile
branches/ErmaC/Enoch/i386/libsaio/fake_efi.c
8787
8888
8989
90
91
92
9093
9194
9295
......
105108
106109
107110
108
111
112
113
114
115
109116
117
118
110119
111120
112121
......
475484
476485
477486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
478507
479508
480509
......
656685
657686
658687
688
689
659690
660691
661692
......
672703
673704
674705
675
706
676707
677
708
709
678710
679
711
680712
681713
682714
......
762794
763795
764796
765
797
798
799
800
801
802
766803
767804
768805
806
769807
770808
771809
EFI_UINT32 getCPUTick(void)
{
uint32_t out;
/*
* Note: shl $32, %edx leaves 0 in %edx, and or to %eax does nothing - zenith432
*/
__asm__ volatile (
"rdtsc\n"
"shl $32,%%edx\n"
/* Identify ourselves as the EFI firmware vendor */
static EFI_CHAR16 const FIRMWARE_VENDOR[] = {'E','n','o','c','h', 0};
static EFI_UINT32 const FIRMWARE_REVISION = 0x0001000a; // got from real MBP6,1
// Pike R. Alpha
/*
* We use the same value for everything, as we should, which means (currently)
* 0x0001000A for EFI64 and 0x00010001 for EFI32. Just like on real Mac's.
*/
static EFI_UINT32 const FIRMWARE_REVISION = EFI_SYSTEM_TABLE_REVISION;
/* Default platform system_id (fix by IntVar)
static EFI_CHAR8 const SYSTEM_ID[] = "0123456789ABCDEF"; //random value gen by uuidgen
*/
static EFI_UINT8 const STARTUP_POWER_EVENTS[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
static EFI_UINT8 const COMPAT_MODE[] = { 0x01, 0x00, 0x00, 0x00 };
// Pike R. Alpha
static EFI_UINT8 const BOOT_DEVICE_PATH[] =
{
0x02, 0x01, 0x0C, 0x00, 0xD0, 0x41, 0x08, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x06, 0x00,
0x02, 0x1F, 0x03, 0x12, 0x0A, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x2A, 0x00,
0x02, 0x00, 0x00, 0x00, 0x28, 0x40, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0B, 0x63, 0x34,
0x00, 0x00, 0x00, 0x00, 0x65, 0x8C, 0x53, 0x3F, 0x1B, 0xCA, 0x83, 0x38, 0xA9, 0xD0, 0xF0, 0x46,
0x19, 0x14, 0x8E, 0x31, 0x02, 0x02, 0x7F, 0xFF, 0x04, 0x00
};
// Pike R. Alpha
static EFI_UINT8 const BOOT_FILE_PATH[] =
{
0x04, 0x04, 0x50, 0x00, 0x5c, 0x00, 0x53, 0x00, 0x79, 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00,
0x6d, 0x00, 0x5c, 0x00, 0x4c, 0x00, 0x69, 0x00, 0x62, 0x00, 0x72, 0x00, 0x61, 0x00, 0x72, 0x00,
0x79, 0x00, 0x5c, 0x00, 0x43, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x65, 0x00, 0x53, 0x00, 0x65, 0x00,
0x72, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x73, 0x00, 0x5c, 0x00, 0x62, 0x00,
0x6f, 0x00, 0x6f, 0x00, 0x74, 0x00, 0x2e, 0x00, 0x65, 0x00, 0x66, 0x00, 0x69, 0x00, 0x00, 0x00,
0x7f, 0xff, 0x04, 0x00
};
/*
* Get an smbios option string option to convert to EFI_CHAR16 string
*/
{
Node *chosenNode;
chosenNode = DT__FindNode("/chosen", false);
unsigned long adler32 = 0;
if (chosenNode == NULL)
{
stop("setupChosenNode: Couldn't get '/chosen' node");
// Adding the default kernel name (mach_kernel) for kextcache.
DT__AddProperty(chosenNode, "boot-file", sizeof(bootInfo->bootFile), bootInfo->bootFile);
//DT__AddProperty(chosenNode, "boot-device-path", bootDPsize, gBootDP);
DT__AddProperty(chosenNode, "boot-file-path", sizeof(BOOT_FILE_PATH), (EFI_UINT8 *) &BOOT_FILE_PATH);
//DT__AddProperty(chosenNode, "boot-file-path", bootFPsize, gBootFP);
// Adding the root path for kextcache.
DT__AddProperty(chosenNode, "boot-device-path", sizeof(BOOT_DEVICE_PATH), (EFI_UINT8 *) &BOOT_DEVICE_PATH);
//DT__AddProperty(chosenNode, "boot-kernelcache-adler32", sizeof(adler32), adler32);
DT__AddProperty(chosenNode, "boot-kernelcache-adler32", sizeof(unsigned long), &adler32);
DT__AddProperty(chosenNode, MACHINE_SIG_PROP, sizeof(Platform.HWSignature), (EFI_UINT32 *)&Platform.HWSignature);
// shr$0x8,%rcx
rdx = (cpuTick >> 0x10);// mov%rax,%rdx
// shr$0x10,%rdx
rdi = rsi;// mov%rsi,%rdi
/*
* Note: In x86 assembly, rXX is upper part of eXX register.
* In C they're different variables.
* The code is identical with or without RANDOMSEED. - zenith432
*/
rdi = rsi = esi;// mov%rsi,%rdi
rdi = (rdi ^ cpuTick);// xor%rax,%rdi
rdi = (rdi ^ rcx);// xor%rcx,%rdi
rdi = (rdi ^ rdx);// xor%rdx,%rdi
edi = (EFI_UINT32) rdi;
seedBuffer[index] = (rdi & 0xff);// mov%dil,(%r15,%r12,1)
#endif
branches/ErmaC/Enoch/i386/boot2/drivers.c
176176
177177
178178
179
180
179181
180182
181183
return 0;
}
// ========================================
// Load extra drivers if a hook has been installed.
if (LoadExtraDrivers_p != NULL)
{
branches/ErmaC/Enoch/i386/boot2/boot.c
149149
150150
151151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
152227
153228
154229
......
316391
317392
318393
319
394
320395
321
322
396
397
323398
324399
325400
326401
402
403
404
405
406
407
408
327409
328410
329411
......
410492
411493
412494
413
414495
496
497
415498
499
416500
417501
418502
......
899983
900984
901985
902
986
903987
904
905
906
988
907989
908990
909991
910
911
992
912993
913994
914995
entry_tkernelEntry;
bootArgs->kaddr = bootArgs->ksize = 0;
// ===============================================================================
// OS X Mountain Lion 10.8
if ( MacOSVerCurrent >= MacOSVer2Int("10.8") ) // Mountain Lion and Up!
{
// cparm
bool KPRebootOption= false;
bool HiDPIOption= false;
getBoolForKey(kRebootOnPanic, &KPRebootOption, &bootInfo->chameleonConfig);
if ( KPRebootOption )
{
bootArgs->flags |= kBootArgsFlagRebootOnPanic;
}
// cparm
getBoolForKey(kEnableHiDPI, &HiDPIOption, &bootInfo->chameleonConfig);
if ( HiDPIOption )
{
bootArgs->flags |= kBootArgsFlagHiDPI;
}
}
// OS X Yosemite 10.10
if ( MacOSVerCurrent >= MacOSVer2Int("10.10") ) // Yosemite and Up!
{
// Pike R. Alpha
bool FlagBlackOption= false;
getBoolForKey(kBlackMode, &FlagBlackOption, &bootInfo->chameleonConfig);
if ( FlagBlackOption )
{
//bootArgs->flags |= kBootArgsFlagBlack;
bootArgs->flags |= kBootArgsFlagBlackBg; // Micky1979
}
}
// OS X El Capitan 10.11
if ( MacOSVerCurrent >= MacOSVer2Int("10.11") ) // El Capitan and Up!
{
// ErmaC
intcrsValue;
#if 0
/*
* A special BootArgs flag "kBootArgsFlagCSRBoot"
* is set in the Recovery or Installation environment.
* This flag is kind of overkill by turning off all the protections
*/
if (isRecoveryHD)
{
// SIP can be controlled with or without FileNVRAM.kext (Pike R. Alpha)
bootArgs->flags|=(kBootArgsFlagCSRActiveConfig + kBootArgsFlagCSRConfigMode + kBootArgsFlagCSRBoot);
}
#endif
bootArgs->flags|= kBootArgsFlagCSRActiveConfig;
// Set limit to 7bit
if ( getIntForKey(kCsrActiveConfig, &crsValue, &bootInfo->chameleonConfig) && (crsValue >= 0 && crsValue <= 127) )
{
bootArgs->csrActiveConfig= crsValue;
}
else
{
// zenith432
bootArgs->csrActiveConfig= 0x67;
}
bootArgs->csrCapabilities= CSR_VALID_FLAGS;
bootArgs->boot_SMC_plimit= 0;
}
// ===============================================================================
execute_hook("ExecKernel", (void *)binary, NULL, NULL, NULL);
ret = DecodeKernel(binary,
}
closedir(cacheDir);
}
else
else if ( MacOSVerCurrent >= MacOSVer2Int("10.7") && MacOSVerCurrent < MacOSVer2Int("10.10") )
{
// Lion, Mountain Lion, Mavericks, Yosemite and El Capitan prelink kernel cache file
// for 10.7 10.8 10.9 10.10 10.11
// Lion, Mountain Lion and Mavericks prelink kernel cache file
// for 10.7 10.8 10.9
snprintf(kernelCacheFile, sizeof(kernelCacheFile), "%skernelcache", kDefaultCachePathSnow);
verbose("Kernel Cache file path (Mac OS X 10.7 and newer): %s\n", kernelCacheFile);
}
else
{
// Yosemite and El Capitan prelink kernel cache file
// for 10.10 10.11
snprintf(kernelCacheFile, sizeof(kernelCacheFile), "%sprelinkedkernel", kDefaultCachePathYosemite);
verbose("Kernel Cache file path (OS X 10.10 and newer): %s\n", kernelCacheFile);
}
}
// Check if the kernel cache file exists
// own things, and then calls common_boot.
void boot(int biosdev)
{
initialize_runtime();
// Enable A20 gate before accessing memory above 1Mb.
// Note: malloc_init(), called via initialize_runtime() writes
// memory >= 1Mb, so A20 must be enabled before calling it. - zenith432
enableA20();
initialize_runtime();
common_boot(biosdev);
}
// =========================================================================
bool checkOSVersion(const char *version)
{
if ( (sizeof(version) > 4) && ('.' != version[4]) && ('\0' != version[4]) )
if ( '\0' != version[4] )
{
return ((gMacOSVersion[0] == version[0]) && (gMacOSVersion[1] == version[1])
&& (gMacOSVersion[2] == version[2]) && (gMacOSVersion[3] == version[3])
&& (gMacOSVersion[4] == version[4]));
return !memcmp(&gMacOSVersion[0], &version[0], 5);
}
else
{
return ((gMacOSVersion[0] == version[0]) && (gMacOSVersion[1] == version[1])
&& (gMacOSVersion[2] == version[2]) && (gMacOSVersion[3] == version[3]));
return !memcmp(&gMacOSVersion[0], &version[0], 4);
}
}
branches/ErmaC/Enoch/i386/boot2/boot.h
4646
4747
4848
49
4950
5051
5152
......
185186
186187
187188
189
188190
191
189192
190193
191194
......
204207
205208
206209
210
207211
208212
209213
// kernel cache
#define kDefaultCachePathLeo"/System/Library/Caches/com.apple.kernelcaches/"
#define kDefaultCachePathSnow"/System/Library/Caches/com.apple.kext.caches/Startup/"
#define kDefaultCachePathYosemite"/System/Library/PrelinkedKernels/"
// Lion installer
#define kLionInstallerDataFolder"/Mac OS X Install Data/"
#define kEnableHDMIAudio"EnableHDMIAudio"/* ati.c && nvidia.c */
/* cparm: added these keys */
#define kRebootOnPanic"RebootOnPanic"
#define kEnableHiDPI"EnableHiDPI"// enable High resolution display (aka Retina)
/* ErmaC: added these keys */
#define kEnableDualLink"EnableDualLink"/* ati.c && nvidia.c && gma.c */
#define kNvidiaGeneric"NvidiaGeneric"/* nvidia.c */
#define kDropBGRT"DropBGRT"/* acpi_patcher.c */
#define kDropMCFG"DropMCFG"/* acpi_patcher.c */
#define kDropAPIC"DropAPIC"/* acpi_patcher.c */
#define kCsrActiveConfig"CsrActiveConfig"/* boot.c */
/* Pike R. Alpha: added this key */
#define kBlackMode"BlackMode"
branches/ErmaC/Enoch/i386/config/confdata.c
8181
8282
8383
84
8485
8586
8687
va_start(ap, fmt);
if (conf_message_callback)
conf_message_callback(fmt, ap);
va_end(ap);
}
const char *conf_get_configname(void)
branches/ErmaC/Enoch/i386/libsa/zalloc.c
7575
7676
7777
78
78
7979
8080
8181
zalloc_base = start ? start : (char *)ZALLOC_ADDR;
totalNodes = nodes ? nodes : ZALLOC_NODES;
zalloced = (zmem *) zalloc_base;
zavailable = (zmem *) zalloc_base + sizeof(zmem) * totalNodes;
zavailable = (zmem *) (zalloc_base + sizeof(zmem) * totalNodes);
zavailable[0].start = (char *)zavailable + sizeof(zmem) * totalNodes;
if (size == 0)
branches/ErmaC/Enoch/i386/util/fdisk/Makefile
1313
1414
1515
16
16
1717
18
1819
1920
2021
include ${SRCROOT}/Make.rules
LDFLAGS := $(LDFALGS) -mmacosx-version-min=10.5
LDFLAGS := $(LDFLAGS) -mmacosx-version-min=10.5
CFLAGS := $(CFLAGS) -mmacosx-version-min=10.5
OBJS = cmd.o32 disk.o32 fdisk.o32 getrawpartition.o32 mbr.o32 misc.o32 opendev.o32 part.o32 user.o32 auto.o32 \
cmd.o64 disk.o64 fdisk.o64 getrawpartition.o64 mbr.o64 misc.o64 opendev.o64 part.o64 user.o64 auto.o64
branches/ErmaC/Enoch/i386/util/boot1-install/Makefile
1111
1212
1313
14
14
1515
1616
1717
......
2121
2222
2323
24
25
2426
2527
2628
......
5658
5759
5860
59
61
include ${SRCROOT}/Make.rules
LDFLAGS := $(LDFALGS) -mmacosx-version-min=10.5 \
LDFLAGS := $(LDFLAGS) -mmacosx-version-min=10.5 \
-framework CoreFoundation \
-framework DiskArbitration \
-Wl,-no_source_version \
-Wl,-no_uuid \
-Wl,-no_dependent_dr_info
CFLAGS := $(CFLAGS) -mmacosx-version-min=10.5
OBJS = boot1-install.o32 \
boot1-install.o64
clean-local:
@for o in $(OBJS); do if [ -f "$${o}" ];then echo "[RM] $${o}"; fi; done
@for p in $(SYMPROG); do if [ -f "$${p}" ];then echo "[RM] $${p}"; fi; done
@rm -f $(SYMPROG) $(OBJS)
@rm -f $(SYMPROG) $(OBJS)
branches/ErmaC/Enoch/i386/util/Makefile
3535
3636
3737
38
38
3939
40
41
4042
4143
4244
OBJS := $(addprefix $(OBJROOT)/, $(OBJS))
LDFLAGS := $(LDFALGS) -framework IOKit -framework CoreFoundation -mmacosx-version-min=10.5
LDFLAGS := $(LDFLAGS) -framework IOKit -framework CoreFoundation -mmacosx-version-min=10.5
CFLAGS := $(CFLAGS) -mmacosx-version-min=10.5
SYMPROG = $(addprefix $(SYMROOT)/, $(PROGRAMS))
DIRS_NEEDED = $(OBJROOT) $(SYMROOT)
branches/ErmaC/Enoch/package/Distribution
99
1010
1111
12
12
1313
1414
1515
......
101101
102102
103103
104
104
105
105106
106107
107108
<!-- license file="License.rtf" sla="EA0401" -->
<readme file='Description.html'/>
<conclusion file="Conclusion.html"/>
<background file='background' alignment='topleft' scaling='no'/>
<background file='background' mime-type='image/png' alignment='topleft' scaling='no'/>
<title>Enoch Bootloder revision %CHAMELEONREVISION%</title>
return false;
}
function check_chameleon_list_option(key, value) {
function check_chameleon_list_option(key, value)
{
if ( bootPlist &amp;&amp; bootPlist[ key ] )
{
var items = bootPlist[ key ].split(" ");

Archive Download the corresponding diff file

Revision: 2808