mirror of
https://github.com/darlinghq/darling-libobjc2.git
synced 2024-11-23 20:29:50 +00:00
0d78186238
I now have an out-of-tree replacement for the dtable stuff, so sarray.{h,c} will be going away soon. The replacement offers similar (slightly worse currently) performance in microbenchmarks, but uses half as much memory (Gorm goes from 95MB to 48MB on my machine). This will be committed once it's been tweaked a little bit.
101 lines
2.0 KiB
Makefile
101 lines
2.0 KiB
Makefile
include $(GNUSTEP_MAKEFILES)/common.make
|
|
|
|
LIBRARY_NAME = libobjc
|
|
|
|
SUBPROJECTS = toydispatch
|
|
|
|
libobjc_VERSION = 4
|
|
|
|
libobjc_OBJC_FILES = \
|
|
NSBlocks.m\
|
|
NXConstStr.m\
|
|
Object.m\
|
|
Protocol.m\
|
|
blocks_runtime.m\
|
|
linking.m\
|
|
mutation.m\
|
|
properties.m\
|
|
sync.m
|
|
|
|
|
|
libobjc_C_FILES = \
|
|
class.c\
|
|
class_table.c\
|
|
encoding.c\
|
|
hash_table.c\
|
|
exception.c\
|
|
gc.c\
|
|
hash.c\
|
|
ivar.c\
|
|
init.c\
|
|
misc.c\
|
|
nil_method.c\
|
|
objects.c\
|
|
protocol.c\
|
|
runtime.c\
|
|
sarray.c\
|
|
sarray2.c\
|
|
selector.c\
|
|
selector_table.c\
|
|
sendmsg.c\
|
|
thr.c
|
|
|
|
libobjc_HEADER_FILES_DIR = objc
|
|
libobjc_HEADER_FILES_INSTALL_DIR = objc
|
|
libobjc_HEADER_FILES = \
|
|
Availability.h\
|
|
NXConstStr.h\
|
|
Object.h\
|
|
Protocol.h\
|
|
blocks_runtime.h\
|
|
encoding.h\
|
|
hash.h\
|
|
objc-api.h\
|
|
objc-decls.h\
|
|
objc-list.h\
|
|
objc.h\
|
|
runtime-legacy.h\
|
|
runtime.h\
|
|
sarray.h\
|
|
slot.h\
|
|
thr.h\
|
|
typedstream.h
|
|
|
|
libobjc_LIBRARIES_DEPEND_UPON += -lpthread
|
|
|
|
# Deprecated functions are only deprecated for external use, not for us because
|
|
# we are special, precious, little flowers.
|
|
libobjc_CPPFLAGS += -D__OBJC_RUNTIME_INTERNAL__=1 -D_XOPEN_SOURCE=500
|
|
# Note to Riccardo. Please do not 'fix' C99isms in this. The new ABI is only
|
|
# useful on compilers that support C99 (currently only clang), so there is no
|
|
# benefit from supporting platforms with no C99 compiler.
|
|
libobjc_CFLAGS += -Werror -std=c99 -g -march=native -fexceptions #-fno-inline
|
|
libobjc_OBJCFLAGS += -g -std=c99 -march=native
|
|
libobjc_LDFLAGS += -g -ltoydispatch
|
|
libobjc_LIB_DIRS += -L toydispatch/obj
|
|
|
|
libobjc_CFLAGS += -O3
|
|
|
|
ifneq ($(findstring gcc, $(CC)),)
|
|
libobjc_CFLAGS += -fgnu89-inline
|
|
endif
|
|
|
|
ifneq ($(findstring mingw, $(GNUSTEP_HOST_OS)),)
|
|
libobjc_C_FILES += libobjc_entry.c
|
|
endif
|
|
|
|
include $(GNUSTEP_MAKEFILES)/aggregate.make
|
|
include $(GNUSTEP_MAKEFILES)/library.make
|
|
|
|
ifeq ($(findstring no, $(debug)),)
|
|
before-all::
|
|
@echo
|
|
@echo
|
|
@echo WARNING: You are building in debug mode. This will generate a LOT of console \
|
|
output for every Objective-C program you run. If this is not what you \
|
|
want, please compile with $(MAKE) debug=no
|
|
@echo
|
|
@echo
|
|
endif
|
|
|