1010#
1111
1212include osmodel.mak
13+ PWD =$(shell pwd)
1314
1415# Latest released version
1516ifeq (,${LATEST})
@@ -19,19 +20,19 @@ endif
1920NEXT_VERSION: =$(shell bash -c 'version=$$(cat VERSION ) ;a=($${version//./ }) ;a[1]="10\# $${a[1]}";((a[1]++)); a[2]=0; echo $${a[0]}.0$${a[1]}.$${a[2]};' )
2021
2122# DLang directories
22- DMD_DIR =../dmd
23- PHOBOS_DIR =../phobos
24- DRUNTIME_DIR =../druntime
25- TOOLS_DIR =../tools
26- INSTALLER_DIR =../installer
27- DUB_DIR =../dub-${DUB_VER}
23+ DMD_DIR =$( PWD ) / ../dmd
24+ PHOBOS_DIR =$( PWD ) / ../phobos
25+ DRUNTIME_DIR =$( PWD ) / ../druntime
26+ TOOLS_DIR =$( PWD ) / ../tools
27+ INSTALLER_DIR =$( PWD ) / ../installer
28+ DUB_DIR =$( PWD ) / ../dub-${DUB_VER}
2829
2930# External binaries
3031DMD =$(DMD_DIR ) /generated/$(OS ) /release/$(MODEL ) /dmd
3132DUB =${DUB_DIR}/bin/dub
3233
3334# External directories
34- DOC_OUTPUT_DIR: =$(shell pwd ) /web
35+ DOC_OUTPUT_DIR: =$(PWD ) /web
3536GIT_HOME =https://github.com/dlang
3637DPL_DOCS_PATH =dpl-docs
3738DPL_DOCS =$(DPL_DOCS_PATH ) /dpl-docs
@@ -106,6 +107,31 @@ else
106107 CHANGELOG_VERSION_STABLE := "v${LATEST}..upstream/stable"
107108endif
108109
110+ # ###############################################################################
111+ # Ddoc build variables
112+ # ###############################################################################
113+ DDOC_VARS_STABLE =\
114+ DOC_OUTPUT_DIR="${DOC_OUTPUT_DIR}/phobos" \
115+ STDDOC="$(addprefix $(PWD ) /, $(STD_DDOC ) ) " \
116+ DMD="$(DMD_STABLE ) " \
117+ DRUNTIME_PATH="${DRUNTIME_DIR}" \
118+ DOCSRC="$(PWD ) " \
119+ VERSION="${DMD_DIR}/VERSION"
120+
121+ DDOC_VARS =\
122+ DMD="${DMD}" \
123+ DRUNTIME_PATH="${DRUNTIME_DIR}" \
124+ DOCSRC="$(PWD ) " \
125+ VERSION="${DMD_DIR}/VERSION"
126+
127+ DDOC_VARS_HTML =$(DDOC_VARS ) \
128+ DOC_OUTPUT_DIR="${DOC_OUTPUT_DIR}/phobos-prerelease" \
129+ STDDOC="$(addprefix $(PWD ) /, $(STD_DDOC_PRE ) ) "
130+
131+ DDOC_VARS_VERBATIM =$(DDOC_VARS ) \
132+ DOC_OUTPUT_DIR="${DOC_OUTPUT_DIR}/phobos-prerelease-verbatim" \
133+ STDDOC="$(PWD ) /verbatim.ddoc"
134+
109135# ###############################################################################
110136# Resources
111137# ###############################################################################
@@ -355,14 +381,14 @@ dlangspec.verbatim.txt : $(DMD) verbatim.ddoc dlangspec-consolidated.d
355381# Git rules
356382# ###############################################################################
357383
358- .. /% -${LATEST} :
359- git clone -b v${LATEST} --depth=1 ${GIT_HOME} /$* $@
384+ $( PWD ) /% -${LATEST} :
385+ git clone -b v${LATEST} --depth=1 ${GIT_HOME} /$( notdir $* ) $@
360386
361- .. /% -${DUB_VER} :
362- git clone --depth=1 -b v${DUB_VER} ${GIT_HOME} /$* $@
387+ $( PWD ) /% -${DUB_VER} :
388+ git clone --depth=1 -b v${DUB_VER} ${GIT_HOME} /$( notdir $* ) $@
363389
364390${DMD_DIR} ${DRUNTIME_DIR} ${PHOBOS_DIR} ${TOOLS_DIR} ${INSTALLER_DIR} :
365- git clone --depth=1 ${GIT_HOME} /$(@F ) $@
391+ git clone --depth=1 ${GIT_HOME} /$(notdir $( @F ) ) $@
366392
367393# ###############################################################################
368394# dmd compiler, latest released build and current build
@@ -375,48 +401,39 @@ $(DMD_STABLE) : ${DMD_STABLE_DIR}
375401 ${MAKE} --directory=${DMD_STABLE_DIR} /src -f posix.mak AUTO_BOOTSTRAP=1
376402
377403dmd-release : $(STD_DDOC ) $(DMD_DIR ) $(DMD )
378- $(MAKE ) AUTO_BOOTSTRAP=1 --directory=$(DMD_DIR ) -f posix.mak html \
379- STDDOC=" $( addprefix ` pwd` /, $( STD_DDOC) ) " \
380- DOC_OUTPUT_DIR=" ${DOC_OUTPUT_DIR} /phobos" \
381- DOCSRC=" $( realpath .) "
404+ $(MAKE ) AUTO_BOOTSTRAP=1 --directory=$(DMD_DIR ) -f posix.mak html $(DDOC_VARS_STABLE )
382405
383406dmd-prerelease : $(STD_DDOC_PRE ) $(DMD_DIR ) $(DMD )
384- $(MAKE ) AUTO_BOOTSTRAP=1 --directory=$(DMD_DIR ) -f posix.mak html \
385- STDDOC=" $( addprefix ` pwd` /, $( STD_DDOC_PRE) ) " \
386- DOCSRC=" $( realpath .) " \
387- DOC_OUTPUT_DIR=" ${DOC_OUTPUT_DIR} /phobos-prerelease"
407+ $(MAKE ) AUTO_BOOTSTRAP=1 --directory=$(DMD_DIR ) -f posix.mak html $(DDOC_VARS_HTML )
388408
389409dmd-prerelease-verbatim : $(STD_DDOC_PRE ) $(DMD_DIR ) \
390410 ${DOC_OUTPUT_DIR} /phobos-prerelease/mars.verbatim
391411${DOC_OUTPUT_DIR}/phobos-prerelease/mars.verbatim : verbatim.ddoc
392412 mkdir -p $(dir $@ )
393- $(MAKE ) AUTO_BOOTSTRAP=1 --directory=$(DMD_DIR ) -f posix.mak html \
394- DOC_OUTPUT_DIR=" ${DOC_OUTPUT_DIR} /phobos-prerelease-verbatim" \
395- STDDOC=" ` pwd` /verbatim.ddoc" \
396- DOCSRC=" $( realpath .) "
413+ $(MAKE ) AUTO_BOOTSTRAP=1 --directory=$(DMD_DIR ) -f posix.mak html $(DDOC_VARS_VERBATIM )
397414 $(call CHANGE_SUFFIX,html,verbatim,${DOC_OUTPUT_DIR}/phobos-prerelease-verbatim)
398415 mv ${DOC_OUTPUT_DIR} /phobos-prerelease-verbatim/* $(dir $@ )
399416 rm -r ${DOC_OUTPUT_DIR} /phobos-prerelease-verbatim
400417
401418# ###############################################################################
402419# druntime, latest released build and current build
420+ # TODO: remove DOCDIR and DOCFMT once they have been removed at Druntime
403421# ###############################################################################
404422
405423druntime-prerelease : ${DRUNTIME_DIR} $(DMD ) $(STD_DDOC_PRE )
406- ${MAKE} --directory=${DRUNTIME_DIR} -f posix.mak target doc \
424+ ${MAKE} --directory=${DRUNTIME_DIR} -f posix.mak target doc $( DDOC_VARS_HTML ) \
407425 DOCDIR=${DOC_OUTPUT_DIR} /phobos-prerelease \
408426 DOCFMT=" $( addprefix ` pwd` /, $( STD_DDOC_PRE) ) "
409427
410428druntime-release : ${DRUNTIME_STABLE_DIR} $(DMD_STABLE ) $(STD_DDOC )
411- ${MAKE} --directory=${DRUNTIME_STABLE_DIR} -f posix.mak target doc \
412- DMD=$(DMD_STABLE ) \
429+ ${MAKE} --directory=${DRUNTIME_STABLE_DIR} -f posix.mak target doc $(DDOC_VARS_STABLE ) \
413430 DOCDIR=${DOC_OUTPUT_DIR} /phobos \
414- DOCFMT=" $( addprefix ` pwd` /, $( STD_DDOC) ) "
431+ DOCFMT=" $( addprefix ` pwd` /, $( STD_DDOC) ) "
415432
416433druntime-prerelease-verbatim : ${DRUNTIME_DIR} \
417434 ${DOC_OUTPUT_DIR} /phobos-prerelease/object.verbatim
418435${DOC_OUTPUT_DIR}/phobos-prerelease/object.verbatim : $(DMD )
419- ${MAKE} --directory=${DRUNTIME_DIR} -f posix.mak target doc \
436+ ${MAKE} --directory=${DRUNTIME_DIR} -f posix.mak target doc $( DDOC_VARS_VERBATIM ) \
420437 DOCDIR=${DOC_OUTPUT_DIR} /phobos-prerelease-verbatim \
421438 DOCFMT=" ` pwd` /verbatim.ddoc"
422439 mkdir -p $(dir $@ )
@@ -430,40 +447,17 @@ ${DOC_OUTPUT_DIR}/phobos-prerelease/object.verbatim : $(DMD)
430447
431448.PHONY : phobos-prerelease
432449phobos-prerelease : ${PHOBOS_FILES_GENERATED} $(STD_DDOC_PRE ) druntime-prerelease
433- ${MAKE} --directory=${PHOBOS_DIR_GENERATED} -f posix.mak \
434- STDDOC=" $( addprefix ` pwd` /, $( STD_DDOC_PRE) ) " \
435- DOC_OUTPUT_DIR=" ${DOC_OUTPUT_DIR} /phobos-prerelease" \
436- DRUNTIME_PATH=" $( realpath ${DRUNTIME_DIR} ) " \
437- DMD=" $( realpath ${DMD} ) " \
438- DOCSRC=" $( realpath .) " \
439- VERSION=" $( realpath ${DMD_DIR} /VERSION) " \
440- html
441-
442- phobos-release : ${PHOBOS_STABLE_FILES_GENERATED} $(DMD_STABLE ) $(STD_DDOC ) \
443- druntime-release
444- ${MAKE} --directory=${PHOBOS_STABLE_DIR_GENERATED} -f posix.mak \
445- DMD=$(DMD_STABLE ) \
446- DRUNTIME_PATH=${DRUNTIME_STABLE_DIR} \
447- DOC_OUTPUT_DIR=${DOC_OUTPUT_DIR} /phobos \
448- STDDOC=" $( addprefix ` pwd` /, $( STD_DDOC) ) " \
449- DRUNTIME_PATH=" $( realpath ${DRUNTIME_DIR} ) " \
450- DMD=" $( realpath ${DMD} ) " \
451- DOCSRC=" $( realpath .) " \
452- VERSION=" $( realpath ${DMD_DIR} /VERSION) " \
453- html
450+ $(MAKE ) --directory=$(PHOBOS_DIR_GENERATED ) -f posix.mak html $(DDOC_VARS_HTML )
451+
452+ phobos-release : ${PHOBOS_STABLE_FILES_GENERATED} $(DMD_STABLE ) $(STD_DDOC ) druntime-release
453+ $(MAKE ) --directory=$(PHOBOS_STABLE_DIR_GENERATED ) -f posix.mak html $(DDOC_VARS_STABLE )
454454
455455phobos-prerelease-verbatim : ${PHOBOS_FILES_GENERATED} ${DOC_OUTPUT_DIR}/phobos-prerelease/index.verbatim
456456${DOC_OUTPUT_DIR}/phobos-prerelease/index.verbatim : verbatim.ddoc \
457457 ${DOC_OUTPUT_DIR} /phobos-prerelease/object.verbatim \
458458 ${DOC_OUTPUT_DIR} /phobos-prerelease/mars.verbatim
459- ${MAKE} --directory=${PHOBOS_DIR_GENERATED} -f posix.mak \
460- STDDOC=" ` pwd` /verbatim.ddoc" \
461- DOC_OUTPUT_DIR=${DOC_OUTPUT_DIR} /phobos-prerelease-verbatim \
462- DRUNTIME_PATH=" $( realpath ${DRUNTIME_DIR} ) " \
463- DMD=" $( realpath ${DMD} ) " \
464- DOCSRC=" $( realpath .) " \
465- VERSION=" $( realpath ${DMD_DIR} /VERSION) " \
466- html
459+ ${MAKE} --directory=${PHOBOS_DIR_GENERATED} -f posix.mak html $(DDOC_VARS_VERBATIM ) \
460+ DOC_OUTPUT_DIR=${DOC_OUTPUT_DIR} /phobos-prerelease-verbatim
467461 $(call CHANGE_SUFFIX,html,verbatim,${DOC_OUTPUT_DIR}/phobos-prerelease-verbatim)
468462 mv ${DOC_OUTPUT_DIR} /phobos-prerelease-verbatim/* $(dir $@ )
469463 rm -r ${DOC_OUTPUT_DIR} /phobos-prerelease-verbatim
0 commit comments