Mercurial > projects > ldc
view runtime/lib/llvmdc-posix.mak @ 486:a34078905d01
Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in.
Reimplemented support for nested functions/class using a new approach.
Added error on taking address of intrinsic.
Fixed problems with the ->syntaxCopy of TypeFunction delegate exp.
Removed DtoDType and replaced all uses with ->toBasetype() instead.
Removed unused inplace stuff.
Fixed a bunch of issues in the runtime unittests, not complete yet.
Added mini tests.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Sun, 10 Aug 2008 08:37:38 +0200 |
parents | 2b28fd92bab8 |
children | 926a03711ca8 |
line wrap: on
line source
# Makefile to build the composite D runtime library for Linux # Designed to work with GNU make # Targets: # make # Same as make all # make lib # Build the runtime library # make doc # Generate documentation # make clean # Delete unneeded files created by build process LIB_TARGET=libtango-base-llvmdc.a LIB_MASK=libtango-base-llvmdc*.a LIB_TARGET_C=libtango-base-c-llvmdc.a LIB_MASK_C=libtango-base-c-llvmdc*.a LIB_NAME_NATIVE=libtango-base-llvmdc-native LIB_TARGET_NATIVE=$(LIB_NAME_NATIVE).a DIR_CC=./common/tango DIR_RT=../../runtime/internal DIR_GC=./gc/basic #DIR_GC=./gc/stub CP=cp -f RM=rm -f MD=mkdir -p CC=gcc LC=llvm-ar rsv CLC=ar rsv DC=llvmdc LLVMLINK=llvm-link LLC=llc ADD_CFLAGS= #ADD_DFLAGS= ADD_DFLAGS=-I`pwd`/common/ targets : nativelib doc all : nativelib lib doc ###################################################### ALL_OBJS= ###################################################### ALL_DOCS= ###################################################### lib : $(ALL_OBJS) make -C $(DIR_CC) -fllvmdc.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)" make -C $(DIR_RT) -fllvmdc.mak lib make -C $(DIR_GC) -fllvmdc.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)" find . -name $(LIB_MASK) | xargs $(RM) $(LC) $(LIB_TARGET) `find $(DIR_CC) -name "*.bc" | xargs echo` $(LC) $(LIB_TARGET) `find $(DIR_RT) -name "*.bc" | xargs echo` $(LC) $(LIB_TARGET) `find $(DIR_GC) -name "*.bc" | xargs echo` $(CLC) $(LIB_TARGET_C) `find $(DIR_CC) -name "*.o" | xargs echo` $(CLC) $(LIB_TARGET_C) `find $(DIR_RT) -name "*.o" | xargs echo` nativelib: $(ALL_OBJS) make -C $(DIR_CC) -fllvmdc.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)" make -C $(DIR_RT) -fllvmdc.mak lib make -C $(DIR_GC) -fllvmdc.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)" $(RM) $(LIB_NAME_NATIVE)* # first link all bcs together to a single bitcode file $(LLVMLINK) -o=$(LIB_NAME_NATIVE)-llvm.bc `find $(DIR_CC) $(DIR_RT) $(DIR_GC) -name "*.bc"` # then compile to assembler $(LLC) -o=$(LIB_NAME_NATIVE)-llvm.s $(LIB_NAME_NATIVE)-llvm.bc # assemble native code $(CC) -c -o $(LIB_NAME_NATIVE)-llvm.o $(LIB_NAME_NATIVE)-llvm.s # make an archive containing it and the other native object files $(CLC) $(LIB_TARGET_NATIVE) $(LIB_NAME_NATIVE)-llvm.o `find $(DIR_CC) $(DIR_RT) -name "*.o"` doc : $(ALL_DOCS) make -C $(DIR_CC) -fllvmdc.mak doc make -C $(DIR_RT) -fllvmdc.mak doc make -C $(DIR_GC) -fllvmdc.mak doc ###################################################### clean : find . -name "*.di" | xargs $(RM) $(RM) $(ALL_OBJS) $(RM) $(ALL_DOCS) make -C $(DIR_CC) -fllvmdc.mak clean make -C $(DIR_RT) -fllvmdc.mak clean make -C $(DIR_GC) -fllvmdc.mak clean $(RM) $(LIB_MASK) $(RM) $(LIB_MASK_C) $(RM) $(LIB_NAME_NATIVE)* install : make -C $(DIR_CC) -fllvmdc.mak install make -C $(DIR_RT) -fllvmdc.mak install make -C $(DIR_GC) -fllvmdc.mak install $(CP) $(LIB_MASK) $(LIB_DEST)/. $(CP) $(LIB_MASK_C) $(LIB_DEST)/.