fix makefile

main
sandyx86 1 year ago
parent 813b82ef47
commit ee80c7abdf

@ -0,0 +1,17 @@
#ifndef YSARRAY_H
#define YSARRAY_H
#import "YSObject.h"
@interface YSArray : YSObject {
@public //public so you can index it directly
id *array;
int count;
}
-(void) addObject: (id) theObject;
-(void) removeObject: (unsigned int) index;
@end
#endif

@ -0,0 +1,56 @@
#import "YSArray.h"
#include <string.h>
#include <stdio.h>
@implementation YSArray
-(id) init {
self = [super init];
array = NULL;
return self;
}
-(void) addObject: (id) theObject {
printf("%s\n", "YSArray: addObject");
if (array == NULL) {
printf("%s\n", "before malloc");
array = malloc(sizeof(id));
if (array == NULL) {
printf("%s\n", "addObject: malloc failed.");
return;
}
printf("%s\n", "after malloc");
} else {
printf("%s\n", "before realloc");
array = realloc(array, count * sizeof(id));
if (array == NULL) {
printf("%s\n", "addObject: realloc failed.");
return;
}
}
array[count++] = theObject;
printf("%s\n", "YSArray: object added.");
}
-(void) removeObject: (unsigned int) index {
if (count == 0 || count == 1) {
array[0] = NULL;
return;
}
if (index >= count) {
return;
}
if (index == count - 1) {
array[count - 1] = NULL;
}
//hope count > index;
memcpy(&array[index], &array[index + 1], (count - index) * sizeof(id));
}
@end

@ -6,6 +6,10 @@
#import "YSObject.h"
#import "YSZone.h"
#ifdef __MINGW32__
#define DLLSPEC __declspec(dllexport)
#endif
typedef struct obj_layout_unpadded {
int32_t retained;
} unp;

@ -1,7 +1,30 @@
SHELL=/bin/sh
CC=gcc
yeslib.a:
LIB := -L
OS :=
ifeq ($(OS),windows)
LIB += lib/win64
CC=x86_64-w64-mingw32-gcc
endif
ifeq ($(OS),linux)
LIB += lib/linux64
endif
LIB += -lobjc
static:
$(CC) YSObject.m -c
$(CC) YSZone.m -c
ar rcs libyeslib.a YSObject.o YSZone.o
$(CC) YSArray.m -c
ar rcs libyeslib.a YSObject.o YSZone.o YSArray.o
shared:
$(CC) YSObject.m -c
$(CC) YSZone.m -c
$(CC) YSArray.m -c
$(CC) -shared -fPIC -o yeslib.dll YSObject.o YSZone.o YSArray.o $(LIB)
clean:
rm *.o
Loading…
Cancel
Save