diff options
| author | Patrick Walton <[email protected]> | 2011-03-11 18:02:09 -0800 |
|---|---|---|
| committer | Patrick Walton <[email protected]> | 2011-03-11 18:03:00 -0800 |
| commit | d34e1ff89e067a57921091fbdffe8c13fa38341c (patch) | |
| tree | 7c3ab414d5295bd77ef48737b2c9c6771997fe0c /src/Makefile | |
| parent | Include glob in crate depfile deps, to handle file-add events with cached dep... (diff) | |
| download | rust-d34e1ff89e067a57921091fbdffe8c13fa38341c.tar.xz rust-d34e1ff89e067a57921091fbdffe8c13fa38341c.zip | |
rustc: Add a binding to LLVM's object file reader. Until it's sent upstream, add an explicit "support" library for our LLVM extensions.
Diffstat (limited to 'src/Makefile')
| -rw-r--r-- | src/Makefile | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/src/Makefile b/src/Makefile index bceef7ff..dc6a78a5 100644 --- a/src/Makefile +++ b/src/Makefile @@ -34,6 +34,7 @@ DSYMUTIL := true ifeq ($(CFG_OSTYPE), FreeBSD) CFG_RUNTIME := librustrt.so + CFG_SUPPORT := librustsupport.so CFG_STDLIB := libstd.so CFG_GCC_CFLAGS += -fPIC -march=i686 -I/usr/local/include CFG_GCC_LINK_FLAGS += -shared -fPIC -lpthread -lrt @@ -47,6 +48,7 @@ endif ifeq ($(CFG_OSTYPE), Linux) CFG_RUNTIME := librustrt.so + CFG_SUPPORT := librustsupport.so CFG_STDLIB := libstd.so CFG_GCC_CFLAGS += -fPIC -march=i686 CFG_GCC_LINK_FLAGS += -shared -fPIC -ldl -lpthread -lrt @@ -60,6 +62,7 @@ endif ifeq ($(CFG_OSTYPE), Darwin) CFG_RUNTIME := librustrt.dylib + CFG_SUPPORT := librustsupport.dylib CFG_STDLIB := libstd.dylib CFG_UNIXY := 1 CFG_GCC_LINK_FLAGS += -dynamiclib -lpthread @@ -85,6 +88,7 @@ ifdef CFG_WINDOWSY CFG_NATIVE := 1 endif CFG_RUNTIME := rustrt.dll + CFG_SUPPORT := rustsupport.dll CFG_STDLIB := std.dll CFG_EXE_SUFFIX := .exe CFG_BOOT := ./rustboot.exe @@ -107,6 +111,7 @@ ifdef CFG_UNIXY CFG_GCC_CROSS := i586-mingw32msvc- CFG_BOOT_FLAGS += -t win32-x86-pe CFG_RUNTIME := rustrt.dll + CFG_SUPPORT := rustsupport.dll CFG_STDLIB := std.dll CFG_RUSTC := ./rustc.exe ifdef CFG_VALGRIND @@ -179,7 +184,7 @@ endif ifneq ($(CFG_LLVM_CONFIG),) CFG_LLVM_VERSION := $(shell $(CFG_LLVM_CONFIG) --version) $(info cfg: found llvm-config at $(CFG_LLVM_CONFIG)) - CFG_LLVM_ALLOWED_VERSIONS := 2.8svn 2.8 2.9svn + CFG_LLVM_ALLOWED_VERSIONS := 2.8svn 2.8 2.9svn 3.0svn ifneq ($(findstring $(CFG_LLVM_VERSION),$(CFG_LLVM_ALLOWED_VERSIONS)),) $(info cfg: using LLVM version $(CFG_LLVM_VERSION)) else @@ -193,6 +198,10 @@ ifdef CFG_LLVM_CONFIG LLC := "$(shell $(CFG_LLVM_CONFIG) --bindir)/llc" CFG_LLC_CFLAGS := -march=x86 LLVM-DIS := "$(shell $(CFG_LLVM_CONFIG) --bindir)/llvm-dis" + CFG_LLVM_INCDIR := $(shell $(CFG_LLVM_CONFIG) --includedir) + CFG_LLVM_CXXFLAGS := $(shell $(CFG_LLVM_CONFIG) --cxxflags) + CFG_LLVM_LDFLAGS := $(shell $(CFG_LLVM_CONFIG) --ldflags) + CFG_LLVM_LIBS := $(shell $(CFG_LLVM_CONFIG) --libs) endif MKFILES := Makefile @@ -301,6 +310,14 @@ RUNTIME_HDR := rt/globals.h \ RUNTIME_INCS := -Irt/isaac -Irt/uthash RUNTIME_OBJS := $(RUNTIME_CS:.cpp=.o) +SUPPORT_CS := support/Object.cpp + +SUPPORT_HDR := support/include/llvm-c/Object.h + +SUPPORT_INCS := -iquote $(CFG_LLVM_INCDIR) +SUPPORT_OBJS := $(SUPPORT_CS:.cpp=.o) +SUPPORT_LIBS := $(CFG_LLVM_LDFLAGS) $(CFG_LLVM_LIBS) + STDLIB_CRATE := lib/std.rc STDLIB_INPUTS := $(wildcard lib/*.rc lib/*.rs lib/*/*.rs) COMPILER_CRATE := comp/rustc.rc @@ -321,14 +338,24 @@ $(CFG_RUNTIME): $(RUNTIME_OBJS) $(MKFILES) $(RUNTIME_HDR) @$(call CFG_ECHO, compile: $<) $(CFG_QUIET)$(call CFG_LINK_C, $@) $(RUNTIME_OBJS) +$(CFG_SUPPORT): $(SUPPORT_OBJS) $(MKFILES) $(SUPPORT_HDR) + @$(call CFG_ECHO, compile: $<) + $(CFG_QUIET)$(call CFG_LINK_C, $@ $(CFG_LLVM_LDFLAGS) $(CFG_LLVM_LIBS)) \ + $(SUPPORT_OBJS) + $(CFG_STDLIB): $(STDLIB_CRATE) $(CFG_BOOT) $(MKFILES) @$(call CFG_ECHO, compile: $<) $(BOOT) -shared -o $@ $(STDLIB_CRATE) -%.o: %.cpp $(MKFILES) +rt/%.o: rt/%.cpp $(MKFILES) @$(call CFG_ECHO, compile: $<) $(CFG_QUIET)$(call CFG_COMPILE_C, $@, $(RUNTIME_INCS)) $< +support/%.o: support/%.cpp $(MKFILES) + @$(call CFG_ECHO, compile: $<) + $(CFG_QUIET)$(call CFG_COMPILE_C, $@, $(CFG_LLVM_CXXFLAGS) \ + $(SUPPORT_INCS)) $< + ifdef CFG_NATIVE $(CFG_BOOT): $(BOOT_CMXS) $(MKFILES) @$(call CFG_ECHO, compile: $<) @@ -359,7 +386,8 @@ endif # Main compiler targets and rules ###################################################################### -$(CFG_RUSTC): $(COMPILER_INPUTS) $(CFG_BOOT) $(CFG_RUNTIME) $(CFG_STDLIB) +$(CFG_RUSTC): $(COMPILER_INPUTS) $(CFG_BOOT) $(CFG_RUNTIME) $(CFG_STDLIB) \ + $(CFG_SUPPORT) @$(call CFG_ECHO, compile: $<) $(BOOT) -minimal -o $@ $< $(CFG_QUIET)chmod 0755 $@ |