# Makefile to build the D runtime library core components for Win32 # Designed to work with DigitalMars 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_BASE=druntime-core LIB_BUILD= LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).lib LIB_MASK=$(LIB_BASE)*.lib CP=xcopy /y RM=del /f MD=mkdir ADD_CFLAGS= ADD_DFLAGS= CFLAGS_RELEASE=-mn -6 -r $(ADD_CFLAGS) CFLAGS_DEBUG=-g -mn -6 -r $(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=dmc LC=lib DC=dmd INC_DEST=..\..\import LIB_DEST=..\..\lib DOC_DEST=..\..\doc .DEFAULT: .asm .c .cpp .d .html .obj .asm.obj: $(CC) -c $< .c.obj: $(CC) -c $(CFLAGS) $< -o$@ .cpp.obj: $(CC) -c $(CFLAGS) $< -o$@ .d.obj: $(DC) -c $(DFLAGS) -Hf$*.di $< -of$@ # $(DC) -c $(DFLAGS) $< -of$@ .d.html: $(DC) -c -o- $(DOCFLAGS) -Df$*.html $< targets : lib doc all : lib doc core : lib lib : core.lib doc : core.doc ###################################################### OBJ_CORE= \ core\bitmanip.obj \ core\exception.obj \ core\memory.obj \ core\runtime.obj \ core\thread.obj \ core\vararg.obj OBJ_STDC= \ core\stdc\errno.obj ALL_OBJS= \ $(OBJ_CORE) \ $(OBJ_STDC) ###################################################### DOC_CORE= \ core\bitmanip.html \ core\exception.html \ core\memory.html \ core\runtime.html \ core\thread.html \ core\vararg.html ###################################################### ALL_DOCS= ###################################################### unittest : make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE) -unittest" release : make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE)" debug : make -fwin32.mak DC="$(DC)" LIB_BUILD="-d" DFLAGS="$(DFLAGS_DEBUG)" ###################################################### core.lib : $(LIB_TARGET) $(LIB_TARGET) : $(ALL_OBJS) $(RM) $@ $(LC) -c -n $@ $(ALL_OBJS) core.doc : $(ALL_DOCS) @echo Documentation generated. ###################################################### ### bitmanip core\bitmanip.obj : core\bitmanip.d $(DC) -c $(DFLAGS) core\bitmanip.d -of$@ ### thread core\thread.obj : core\thread.d $(DC) -c $(DFLAGS) -d -Hf$*.di core\thread.d -of$@ ### vararg core\vararg.obj : core\vararg.d $(DC) -c $(TFLAGS) -Hf$*.di core\vararg.d -of$@ ###################################################### clean : $(RM) /s .\*.di $(RM) $(ALL_OBJS) $(RM) $(ALL_DOCS) $(RM) $(LIB_MASK) install : $(MD) $(INC_DEST)\. $(CP) /s *.di $(INC_DEST)\. $(MD) $(DOC_DEST) $(CP) /s *.html $(DOC_DEST)\. $(MD) $(LIB_DEST) $(CP) $(LIB_MASK) $(LIB_DEST)\.