|
|
|
|
@ -1,8 +1,8 @@
|
|
|
|
|
.POSIX:
|
|
|
|
|
|
|
|
|
|
.SUFFIXES: .c .bc .m
|
|
|
|
|
.SUFFIXES: .c .cc .bc .m .S .o
|
|
|
|
|
|
|
|
|
|
VERSION = 4
|
|
|
|
|
-include version.make
|
|
|
|
|
|
|
|
|
|
#CC=clang
|
|
|
|
|
|
|
|
|
|
@ -23,6 +23,7 @@ OBJECTS = \
|
|
|
|
|
abi_version.bc\
|
|
|
|
|
alias_table.bc\
|
|
|
|
|
blocks_runtime.bc\
|
|
|
|
|
block_to_imp.bc\
|
|
|
|
|
caps.bc\
|
|
|
|
|
category_loader.bc\
|
|
|
|
|
class_table.bc\
|
|
|
|
|
@ -44,15 +45,35 @@ OBJECTS = \
|
|
|
|
|
statics_loader.bc\
|
|
|
|
|
toydispatch.bc
|
|
|
|
|
|
|
|
|
|
all: libobjc.so.$(VERSION) libobjc.a
|
|
|
|
|
NATIVE_OBJECTS=\
|
|
|
|
|
block_trampolines.o\
|
|
|
|
|
objc_msgSend.o
|
|
|
|
|
|
|
|
|
|
CXX_OBJECTS=\
|
|
|
|
|
objcxx_eh.bc
|
|
|
|
|
|
|
|
|
|
all: libobjc.so.$(VERSION) libobjc.a libobjcxx.so.$(VERSION)
|
|
|
|
|
@echo "'Makefile.clang' is deprecated. Please use 'Makefile' or 'GNUmakefile'"
|
|
|
|
|
|
|
|
|
|
libobjcxx.so.$(VERSION): libobjc.so.$(VERSION) libobjcxx.o
|
|
|
|
|
@echo Linking shared C++ library...
|
|
|
|
|
@clang++ -shared -o $@ libobjcxx.o -L./ -lobjc
|
|
|
|
|
|
|
|
|
|
libobjcxx.o: libobjcxx.bc
|
|
|
|
|
@echo Generating native C++ object code...
|
|
|
|
|
@llc -relocation-model=pic -O3 -filetype=obj -o $@ libobjcxx.bc
|
|
|
|
|
|
|
|
|
|
libobjcxx.bc: $(CXX_OBJECTS)
|
|
|
|
|
@echo Linking C++ bitcode...
|
|
|
|
|
@llvm-ld -internalize -link-as-library -native -o libobjcxx.bc $(CXX_OBJECTS)
|
|
|
|
|
|
|
|
|
|
libobjc.so.$(VERSION): libobjc.o
|
|
|
|
|
@echo Linking shared library...
|
|
|
|
|
@clang -shared -o $@ libobjc.o -lpthread
|
|
|
|
|
|
|
|
|
|
libobjc.a: libobjc.o
|
|
|
|
|
libobjc.a: libobjc.o $(NATIVE_OBJECTS)
|
|
|
|
|
@echo Linking static library...
|
|
|
|
|
@ld -r -s -o $@ libobjc.o
|
|
|
|
|
@ld -r -s -o $@ libobjc.o $(NATIVE_OBJECTS)
|
|
|
|
|
|
|
|
|
|
libobjc.o: libobjc.bc
|
|
|
|
|
@echo Generating native object code...
|
|
|
|
|
@ -66,10 +87,19 @@ libobjc.bc: $(OBJECTS)
|
|
|
|
|
@echo Compiling $<...
|
|
|
|
|
@clang $(CPPFLAGS) $(CFLAGS) -emit-llvm -c $< -o $@
|
|
|
|
|
|
|
|
|
|
.cc.bc:
|
|
|
|
|
@echo Compiling $<...
|
|
|
|
|
@clang++ $(CPPFLAGS) $(CFLAGS) -emit-llvm -c $< -o $@
|
|
|
|
|
|
|
|
|
|
.m.bc:
|
|
|
|
|
@echo Compiling $<...
|
|
|
|
|
@clang $(CPPFLAGS) $(CFLAGS) -emit-llvm -c $< -o $@
|
|
|
|
|
|
|
|
|
|
.S.o:
|
|
|
|
|
@echo Assembling `basename $<`...
|
|
|
|
|
@clang $(CPPFLAGS) -no-integrated-as -c $< -o $@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
install: all
|
|
|
|
|
install -m 444 libobjc.so.$(VERSION) $(LIB_DIR)
|
|
|
|
|
install -m 444 libobjc.a $(LIB_DIR)
|
|
|
|
|
@ -79,4 +109,8 @@ install: all
|
|
|
|
|
|
|
|
|
|
clean:
|
|
|
|
|
@echo Cleaning...
|
|
|
|
|
@rm -f obj/*
|
|
|
|
|
@rm -f $(NATIVE_OBJECTS)
|
|
|
|
|
@rm -f $(OBJECTS)
|
|
|
|
|
@rm -f $(CXX_OBJECTS)
|
|
|
|
|
@rm -f libobjc.a libobjc.o libobjcxx.o libobjc.bc libobjcxx.bc
|
|
|
|
|
@rm -f libobjc.so.$(VERSION) libobjcxx.so.$(VERSION)
|
|
|
|
|
|