* Update Makefile.clang to the present state (and add deprecation notice).

* Store version info for the makefiles in one place (version.make).
* Update Makefile to build assembly correctly with GCC.
main
thebeing 14 years ago
parent 3c30464c45
commit a106ba85af

@ -21,9 +21,9 @@ else
#
# Start of GNUstep-make specific section.
#
-include version.make
PACKAGE_NAME = gnustep-objc2
VERSION=4.6.0
SVN_MODULE_NAME = libobjc2
SVN_BASE_URL = svn+ssh://svn.gna.org/svn/gnustep/libs
SVN_TAG_NAME=objc2

@ -2,10 +2,7 @@
.SUFFIXES: .cc .c .m .o .S
MAJOR_VERSION = 4
MINOR_VERSION = 6
SUBMINOR_VERSION = 0
VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(SUBMINOR_VERSION)
-include version.make
LIBOBJCLIBNAME=objc
LIBOBJC=libobjc
@ -18,6 +15,12 @@ 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
ifeq ($(CC),clang)
ASMFLAGS += -no-integrated-as
else
ASMFLAGS +=
endif
STRIP=`if [ "$(strip)" = "yes" ] ; then echo -s ; fi`
# Suppress warnings about incorrect selectors
@ -98,7 +101,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
-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,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)

@ -0,0 +1,5 @@
# Version information for libobjc2
MAJOR_VERSION = 4
MINOR_VERSION = 6
SUBMINOR_VERSION = 0
VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(SUBMINOR_VERSION)
Loading…
Cancel
Save