X-Git-Url: https://git.llucax.com/software/druntime.git/blobdiff_plain/fd5d6cdebfefde3785c583794885106c42ba705f..HEAD:/src/compiler/dmd/posix.mak diff --git a/src/compiler/dmd/posix.mak b/src/compiler/dmd/posix.mak index 7d3f660..dcec213 100644 --- a/src/compiler/dmd/posix.mak +++ b/src/compiler/dmd/posix.mak @@ -1,178 +1,197 @@ -# 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 -version=Posix $(ADD_DFLAGS) -#DFLAGS=-g -w -nofloat -version=Posix $(ADD_DFLAGS) - -TFLAGS=-O -inline -w -nofloat -version=Posix $(ADD_DFLAGS) -#TFLAGS=-g -w -nofloat -version=Posix $(ADD_DFLAGS) - -DOCFLAGS=-version=DDoc -version=Posix - -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)/. +# 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_BASE=libdruntime-rt-dmd +LIB_BUILD= +LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).a +LIB_MASK=$(LIB_BASE)*.a + +CP=cp -f +RM=rm -f +MD=mkdir -p + +ADD_CFLAGS= +ADD_DFLAGS= + +CFLAGS_RELEASE=-O $(ADD_CFLAGS) +CFLAGS_DEBUG=-g $(ADD_CFLAGS) +CFLAGS=$(CFLAGS_RELEASE) + +DFLAGS_RELEASE=-release -O -inline -w -nofloat $(ADD_DFLAGS) +DFLAGS_DEBUG=-g -w -nofloat $(ADD_DFLAGS) +DFLAGS=$(DFLAGS_RELEASE) + +TFLAGS_RELEASE=-O -inline -w -nofloat $(ADD_DFLAGS) +TFLAGS_DEBUG=-g -w -nofloat $(ADD_DFLAGS) +TFLAGS=$(TFLAGS_RELEASE) + +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= + +###################################################### + +unittest : + make -fposix.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE) -unittest" + +release : + make -fposix.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE)" + +debug : + make -fposix.mak DC="$(DC)" LIB_BUILD="-d" DFLAGS="$(DFLAGS_DEBUG)" + +###################################################### + +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)/.