diff druntime/src/compiler/dmd/posix.mak @ 1458:e0b2d67cfe7c

Added druntime (this should be removed once it works).
author Robert Clipsham <robert@octarineparrot.com>
date Tue, 02 Jun 2009 17:43:06 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/druntime/src/compiler/dmd/posix.mak	Tue Jun 02 17:43:06 2009 +0100
@@ -0,0 +1,82 @@
+# Makefile to build the compiler runtime D library for Linux
+# Designed to work with GNU make
+# Targets:
+#	make
+#		Same as make all
+#	make debug
+#		Build the debug version of the library
+#   make release
+#       Build the release version of the library
+#   make doc
+#       Generate documentation
+#	make clean
+#		Delete all files created by build process
+
+# Essentials
+
+LIBDIR=../../../lib
+DOCDIR=../../../doc
+IMPDIR=../../../import
+LIBBASENAME=libdruntime-rt-dmd.a
+MODULES=
+BUILDS=debug release unittest
+
+MODULES_BASE=aaA aApply aApplyR adi alloca arrayassign arraybyte	\
+    arraycast arraycat arraydouble arrayfloat arrayint arrayreal	\
+    arrayshort cast_ cmath2 cover deh2 dmain2 invariant invariant_	\
+    lifetime llmath memory memset obj object_ qsort switch_ trace
+# NOTE: trace.o and cover.o 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
+MODULES_UTIL=$(addprefix util/,console cpuid ctype string utf)
+MODULES_TI=$(addprefix typeinfo/ti_,AC Acdouble Acfloat Acreal Adouble	\
+    Afloat Ag Aint Along Areal Ashort byte C cdouble cfloat char creal	\
+    dchar delegate double float idouble ifloat int ireal long ptr real	\
+    short ubyte uint ulong ushort void wchar)
+C_SRCS=complex.c critical.c memory_osx.c monitor.c
+
+# Symbols
+
+DMD=dmd
+DOCFLAGS=-version=DDoc
+DFLAGS_release=-d -release -O -inline -w -nofloat
+DFLAGS_debug=-d -g -w -nofloat
+DFLAGS_unittest=$(DFLAGS_release) -unittest
+CFLAGS_release=-m32 -O
+CFLAGS_debug=-m32 -g
+CFLAGS_unittest=$(CFLAGS_release)
+
+# Derived symbols
+
+C_OBJS=$(addsuffix .o,$(basename $(C_SRCS)))
+AS_OBJS=$(addsuffix .o,$(basename $(AS_SRCS)))
+ALL_MODULES=$(MODULES_BASE) $(MODULES_UTIL) $(MODULES_TI)
+D_SRCS=$(addsuffix .d,$(ALL_MODULES))
+ALLLIBS=$(addsuffix /$(LIBBASENAME),$(addprefix $(LIBDIR)/,$(BUILDS)))
+
+# Patterns
+
+$(LIBDIR)/%/$(LIBBASENAME) : $(D_SRCS) $(C_SRCS) $(AS_SRCS)
+	$(CC) -c $(CFLAGS_$*) $(C_SRCS)
+	$(DMD) $(DFLAGS_$*) -lib -of$@ $(D_SRCS) $(C_OBJS) $(AS_OBJS)
+	rm $(C_OBJS) $(AS_OBJS)
+
+$(DOCDIR)/%.html : %.d
+	$(DMD) -c -d -o- -Df$@ $<
+
+$(IMPDIR)/%.di : %.d
+	$(DMD) -c -d -o- -Hf$@ $<
+
+# Rulez
+
+all : $(BUILDS) doc
+
+debug : $(LIBDIR)/debug/$(LIBBASENAME) $(IMPORTS)
+release : $(LIBDIR)/release/$(LIBBASENAME) $(IMPORTS)
+unittest : $(LIBDIR)/unittest/$(LIBBASENAME) $(IMPORTS)
+#doc : $(DOCS)
+
+clean :
+	rm -f $(IMPORTS) $(DOCS) $(ALLLIBS)