Redo last change to the Makefiles in a portable fashion.

main
thebeing 14 years ago
parent c0123c5be3
commit 629b3bac4f

@ -18,6 +18,8 @@ CXXFLAGS += -fPIC -fexceptions
CPPFLAGS += -DTYPE_DEPENDENT_DISPATCH -DGNUSTEP
CPPFLAGS += -D__OBJC_RUNTIME_INTERNAL__=1 -D_XOPEN_SOURCE=500 -D__BSD_VISIBLE=1 -D_BSD_SOURCE=1
ASMFLAGS += `if [ "$(CC)" = "clang" ] ; then echo -no-integrated-as ; fi`
STRIP=`if [ "$(strip)" = "yes" ] ; then echo -s ; fi`
# Suppress warnings about incorrect selectors
@ -98,7 +100,7 @@ $(LIBOBJC).a: $(OBJECTS)
.S.o: Makefile
$(SILENT)echo Assembling `basename $<`...
$(SILENT)$(CC) $(CPPFLAGS) -no-integrated-as -c $< -o $@
$(SILENT)$(CC) $(CPPFLAGS) $(ASMFLAGS) -c $< -o $@
install: all
$(SILENT)echo Installing libraries...

@ -1,8 +1,8 @@
.POSIX:
.SUFFIXES: .c .bc .m
.SUFFIXES: .c .cc .bc .m .S .o
VERSION = 4
VERSION = 4.6.0
#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,17 +45,37 @@ 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
libobjc.o: libobjc.bc
@echo Generating native object code...
@llc -relocation-model=pic -O3 -filetype=obj -o libobjc.o libobjc.bc
@ -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)

Loading…
Cancel
Save