Mercurial > projects > ldc
view tests/testincludes/Makefile @ 1404:11b122f92136
Now that templates instantiations are no longer emitted for all modules that
even blink at them they seem to break due to being linkonce (if compiled with
any optimization level > 0), so let's give them weak linkage instead.
The difference is that unreferenced linkonce symbols can be deleted, while
weak symbols need to be preserved.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Thu, 21 May 2009 15:23:28 +0200 |
parents | 6aaa3d3c1183 |
children | 628433c343b4 |
line wrap: on
line source
# Copied from tango runtime makefile. # Designed to work with GNU make # Targets: # make # Same as make all # make lib # Build the common library # make doc # Generate documentation # make clean # Delete unneeded files created by build process LIB_TARGET=libtangobos-partial.a LIB_MASK=libtangobos-partial.a* CP=cp -f RM=rm -f MD=mkdir -p ADD_CFLAGS= ADD_DFLAGS= #CFLAGS=-O3 $(ADD_CFLAGS) CFLAGS=-g $(ADD_CFLAGS) #DFLAGS=-release -O3 -inline -w $(ADD_DFLAGS) DFLAGS=-g -w -noasm $(ADD_DFLAGS) #TFLAGS=-O3 -inline -w $(ADD_DFLAGS) TFLAGS=-g -w -noasm $(ADD_DFLAGS) DOCFLAGS=-version=DDoc CC=gcc LC=llvm-ar rsv CLC=ar rsv DC=ldc LLC=llvm-as LLVMLINK=llvm-link LLC=llc INC_DEST= LIB_DEST= DOC_DEST= .SUFFIXES: .d .bc .d.bc: $(DC) -c $(DFLAGS) $< -of$@ # $(DC) -c $(DFLAGS) $< -of$@ targets : lib all : lib lib : tangobos.lib ###################################################### OBJ_CORE= \ std/gc.bc \ std/outofmemory.bc \ # std/asserterror.bc \ # std/math.bc \ # std/stdarg.bc # std/format.bc \ ALL_OBJS= \ $(OBJ_CORE) ###################################################### tangobos.lib : $(LIB_TARGET) $(LIB_TARGET) : $(ALL_OBJS) $(RM) $(LIB_MASK) $(LLVMLINK) -o=$(LIB_TARGET).bc `find -name "*.bc"` $(LLC) -o=$(LIB_TARGET).s $(LIB_TARGET).bc $(CC) -c -o $(LIB_TARGET) $(LIB_TARGET).s clean : $(RM) $(ALL_OBJS) find . -name "$(LIB_MASK)" | xargs $(RM)