mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-02-24 15:43:14 +01:00
179 lines
3.6 KiB
Makefile
179 lines
3.6 KiB
Makefile
# Makefile to build the compiler runtime D library for Linux
|
|
# Designed to work with GNU make
|
|
# Targets:
|
|
# make
|
|
# Same as make all
|
|
# make lib
|
|
# Build the compiler runtime library
|
|
# make doc
|
|
# Generate documentation
|
|
# make clean
|
|
# Delete unneeded files created by build process
|
|
|
|
LIB_TARGET=libdruntime-rt-dmd.a
|
|
LIB_MASK=libdruntime-rt-dmd*.a
|
|
|
|
CP=cp -f
|
|
RM=rm -f
|
|
MD=mkdir -p
|
|
|
|
CFLAGS=-O $(ADD_CFLAGS)
|
|
#CFLAGS=-g $(ADD_CFLAGS)
|
|
|
|
DFLAGS=-release -O -inline -w -nofloat $(ADD_DFLAGS)
|
|
#DFLAGS=-g -w -nofloat $(ADD_DFLAGS)
|
|
|
|
TFLAGS=-O -inline -w -nofloat $(ADD_DFLAGS)
|
|
#TFLAGS=-g -w -nofloat $(ADD_DFLAGS)
|
|
|
|
DOCFLAGS=-version=DDoc
|
|
|
|
CC=gcc
|
|
LC=$(AR) -qsv
|
|
DC=dmd
|
|
|
|
LIB_DEST=../../../lib
|
|
|
|
.SUFFIXES: .s .S .c .cpp .d .html .o
|
|
|
|
.s.o:
|
|
$(CC) -c $(CFLAGS) $< -o$@
|
|
|
|
.S.o:
|
|
$(CC) -c $(CFLAGS) $< -o$@
|
|
|
|
.c.o:
|
|
$(CC) -c $(CFLAGS) $< -o$@
|
|
|
|
.cpp.o:
|
|
g++ -c $(CFLAGS) $< -o$@
|
|
|
|
.d.o:
|
|
$(DC) -c $(DFLAGS) $< -of$@
|
|
|
|
.d.html:
|
|
$(DC) -c -o- $(DOCFLAGS) -Df$*.html dmd.ddoc $<
|
|
|
|
targets : lib doc
|
|
all : lib doc
|
|
lib : dmd.lib
|
|
doc : dmd.doc
|
|
|
|
######################################################
|
|
|
|
OBJ_BASE= \
|
|
aaA.o \
|
|
aApply.o \
|
|
aApplyR.o \
|
|
adi.o \
|
|
alloca.o \
|
|
arrayassign.o \
|
|
arraybyte.o \
|
|
arraycast.o \
|
|
arraycat.o \
|
|
arraydouble.o \
|
|
arrayfloat.o \
|
|
arrayint.o \
|
|
arrayreal.o \
|
|
arrayshort.o \
|
|
cast_.o \
|
|
cmath2.o \
|
|
complex.o \
|
|
cover.o \
|
|
critical.o \
|
|
deh2.o \
|
|
dmain2.o \
|
|
invariant.o \
|
|
invariant_.o \
|
|
lifetime.o \
|
|
llmath.o \
|
|
memory.o \
|
|
memset.o \
|
|
monitor.o \
|
|
obj.o \
|
|
object_.o \
|
|
qsort.o \
|
|
switch_.o \
|
|
trace.o
|
|
# NOTE: trace.obj and cover.obj are not necessary for a successful build
|
|
# as both are used for debugging features (profiling and coverage)
|
|
# NOTE: a pre-compiled minit.obj has been provided in dmd for Win32 and
|
|
# minit.asm is not used by dmd for linux
|
|
# NOTE: deh.o is only needed for Win32, linux uses deh2.o
|
|
|
|
OBJ_UTIL= \
|
|
util/console.o \
|
|
util/cpuid.o \
|
|
util/ctype.o \
|
|
util/string.o \
|
|
util/utf.o
|
|
|
|
OBJ_TI= \
|
|
typeinfo/ti_AC.o \
|
|
typeinfo/ti_Acdouble.o \
|
|
typeinfo/ti_Acfloat.o \
|
|
typeinfo/ti_Acreal.o \
|
|
typeinfo/ti_Adouble.o \
|
|
typeinfo/ti_Afloat.o \
|
|
typeinfo/ti_Ag.o \
|
|
typeinfo/ti_Aint.o \
|
|
typeinfo/ti_Along.o \
|
|
typeinfo/ti_Areal.o \
|
|
typeinfo/ti_Ashort.o \
|
|
typeinfo/ti_byte.o \
|
|
typeinfo/ti_C.o \
|
|
typeinfo/ti_cdouble.o \
|
|
typeinfo/ti_cfloat.o \
|
|
typeinfo/ti_char.o \
|
|
typeinfo/ti_creal.o \
|
|
typeinfo/ti_dchar.o \
|
|
typeinfo/ti_delegate.o \
|
|
typeinfo/ti_double.o \
|
|
typeinfo/ti_float.o \
|
|
typeinfo/ti_idouble.o \
|
|
typeinfo/ti_ifloat.o \
|
|
typeinfo/ti_int.o \
|
|
typeinfo/ti_ireal.o \
|
|
typeinfo/ti_long.o \
|
|
typeinfo/ti_ptr.o \
|
|
typeinfo/ti_real.o \
|
|
typeinfo/ti_short.o \
|
|
typeinfo/ti_ubyte.o \
|
|
typeinfo/ti_uint.o \
|
|
typeinfo/ti_ulong.o \
|
|
typeinfo/ti_ushort.o \
|
|
typeinfo/ti_void.o \
|
|
typeinfo/ti_wchar.o
|
|
|
|
ALL_OBJS= \
|
|
$(OBJ_BASE) \
|
|
$(OBJ_UTIL) \
|
|
$(OBJ_TI)
|
|
|
|
######################################################
|
|
|
|
ALL_DOCS=
|
|
|
|
######################################################
|
|
|
|
dmd.lib : $(LIB_TARGET)
|
|
|
|
$(LIB_TARGET) : $(ALL_OBJS)
|
|
$(RM) $@
|
|
$(LC) $@ $(ALL_OBJS)
|
|
|
|
dmd.doc : $(ALL_DOCS)
|
|
echo No documentation available.
|
|
|
|
######################################################
|
|
|
|
clean :
|
|
find . -name "*.di" | xargs $(RM)
|
|
$(RM) $(ALL_OBJS)
|
|
$(RM) $(ALL_DOCS)
|
|
$(RM) $(LIB_MASK)
|
|
|
|
install :
|
|
$(MD) $(LIB_DEST)
|
|
$(CP) $(LIB_MASK) $(LIB_DEST)/.
|