Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ css/cssmenu.css
*.min.*

deleteme.*
docs-prerelease.json
docs.json
.dub/
dpl-docs/dpl-docs
modlist-release.ddoc
Expand Down
72 changes: 34 additions & 38 deletions posix.mak
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,13 @@ TMP?=/tmp

# Last released versions
DMD_STABLE_DIR=${DMD_DIR}-${LATEST}
DMD_STABLE=$(DMD_STABLE_DIR)/generated/$(OS)/release/$(MODEL)/dmd
DMD_REL=$(DMD_STABLE_DIR)/src/dmd
DRUNTIME_STABLE_DIR=${DRUNTIME_DIR}-${LATEST}
PHOBOS_STABLE_DIR=${PHOBOS_DIR}-${LATEST}

################################################################################
# Automatically generated directories
GENERATED=.generated
G=$(GENERATED)
PHOBOS_DIR_GENERATED=$(GENERATED)/phobos-prerelease
PHOBOS_STABLE_DIR_GENERATED=$(GENERATED)/phobos-release
# The assert_writeln_magic tool transforms all source files from Phobos. Hence
Expand Down Expand Up @@ -219,10 +218,10 @@ ${GENERATED}/${LATEST}.ddoc :
mkdir -p $(dir $@)
echo "LATEST=${LATEST}" >$@

${GENERATED}/modlist-${LATEST}.ddoc : modlist.d ${STABLE_DMD} $(DRUNTIME_STABLE_DIR) $(PHOBOS_STABLE_DIR) $(DMD_STABLE_DIR)
${GENERATED}/modlist-${LATEST}.ddoc : modlist.d ${STABLE_DMD} $(DRUNTIME_STABLE_DIR) $(PHOBOS_STABLE_DIR)
mkdir -p $(dir $@)
$(STABLE_RDMD) modlist.d $(DRUNTIME_STABLE_DIR) $(PHOBOS_STABLE_DIR) $(DMD_STABLE_DIR) $(MOD_EXCLUDES_RELEASE) \
$(addprefix --dump , object std etc core ddmd) >$@
$(STABLE_RDMD) modlist.d $(DRUNTIME_STABLE_DIR) $(PHOBOS_STABLE_DIR) $(MOD_EXCLUDES_RELEASE) \
$(addprefix --dump , object std etc core) >$@

${GENERATED}/modlist-prerelease.ddoc : modlist.d ${STABLE_DMD} $(DRUNTIME_DIR) $(PHOBOS_DIR)
mkdir -p $(dir $@)
Expand Down Expand Up @@ -371,11 +370,11 @@ ${DMD_DIR} ${DRUNTIME_DIR} ${PHOBOS_DIR} ${TOOLS_DIR} ${INSTALLER_DIR}:
$(DMD) : ${DMD_DIR}
${MAKE} --directory=${DMD_DIR}/src -f posix.mak AUTO_BOOTSTRAP=1

$(DMD_STABLE) : ${DMD_STABLE_DIR}
$(DMD_REL) : ${DMD_STABLE_DIR}
${MAKE} --directory=${DMD_STABLE_DIR}/src -f posix.mak AUTO_BOOTSTRAP=1

dmd-release : $(STD_DDOC) $(DMD_DIR) $(DMD)
$(MAKE) AUTO_BOOTSTRAP=1 --directory=$(DMD_STABLE_DIR) -f posix.mak html \
$(MAKE) AUTO_BOOTSTRAP=1 --directory=$(DMD_DIR) -f posix.mak html \
STDDOC="$(addprefix `pwd`/, $(STD_DDOC))" \
DOC_OUTPUT_DIR="${DOC_OUTPUT_DIR}/phobos" \
DOCSRC="$(realpath .)"
Expand Down Expand Up @@ -407,9 +406,9 @@ druntime-prerelease : ${DRUNTIME_DIR} $(DMD) $(STD_DDOC_PRE)
DOCDIR=${DOC_OUTPUT_DIR}/phobos-prerelease \
DOCFMT="$(addprefix `pwd`/, $(STD_DDOC_PRE))"

druntime-release : ${DRUNTIME_STABLE_DIR} $(DMD_STABLE) $(STD_DDOC)
druntime-release : ${DRUNTIME_STABLE_DIR} $(DMD_REL) $(STD_DDOC)
${MAKE} --directory=${DRUNTIME_STABLE_DIR} -f posix.mak target doc \
DMD=$(DMD_STABLE) \
DMD=$(DMD_REL) \
DOCDIR=${DOC_OUTPUT_DIR}/phobos \
DOCFMT="$(addprefix `pwd`/, $(STD_DDOC))"

Expand Down Expand Up @@ -439,16 +438,17 @@ phobos-prerelease : ${PHOBOS_FILES_GENERATED} $(STD_DDOC_PRE) druntime-prereleas
VERSION="$(realpath ${DMD_DIR}/VERSION)" \
html

phobos-release : ${PHOBOS_STABLE_FILES_GENERATED} $(DMD_STABLE) $(STD_DDOC) \
druntime-release dmd-release
phobos-release : ${PHOBOS_STABLE_FILES_GENERATED} $(DMD_REL) $(STD_DDOC) \
druntime-release
${MAKE} --directory=${PHOBOS_STABLE_DIR_GENERATED} -f posix.mak \
DMD=$(realpath ${DMD_STABLE}) \
DMD=$(DMD_REL) \
DRUNTIME_PATH=${DRUNTIME_STABLE_DIR} \
DOC_OUTPUT_DIR=${DOC_OUTPUT_DIR}/phobos \
STDDOC="$(addprefix `pwd`/, $(STD_DDOC))" \
DRUNTIME_PATH="$(realpath ${DRUNTIME_DIR})" \
DMD="$(realpath ${DMD})" \
DOCSRC="$(realpath .)" \
VERSION="$(realpath ${DMD_STABLE_DIR}/VERSION)" \
VERSION="$(realpath ${DMD_DIR}/VERSION)" \
html

phobos-prerelease-verbatim : ${PHOBOS_FILES_GENERATED} ${DOC_OUTPUT_DIR}/phobos-prerelease/index.verbatim
Expand All @@ -473,24 +473,24 @@ ${DOC_OUTPUT_DIR}/phobos-prerelease/index.verbatim : verbatim.ddoc \

apidocs-prerelease : ${DOC_OUTPUT_DIR}/library-prerelease/sitemap.xml ${DOC_OUTPUT_DIR}/library-prerelease/.htaccess
apidocs-release : ${DOC_OUTPUT_DIR}/library/sitemap.xml ${DOC_OUTPUT_DIR}/library/.htaccess
apidocs-serve : $G/docs-prerelease.json
apidocs-serve : docs-prerelease.json
${DPL_DOCS} serve-html --std-macros=html.ddoc --std-macros=dlang.org.ddoc --std-macros=std.ddoc --std-macros=macros.ddoc --std-macros=std-ddox.ddoc \
--override-macros=std-ddox-override.ddoc --package-order=std \
--git-target=master --web-file-dir=. $<
--git-target=master --web-file-dir=. docs-prerelease.json

${DOC_OUTPUT_DIR}/library-prerelease/sitemap.xml : $G/docs-prerelease.json
${DOC_OUTPUT_DIR}/library-prerelease/sitemap.xml : docs-prerelease.json
@mkdir -p $(dir $@)
${DPL_DOCS} generate-html --file-name-style=lowerUnderscored --std-macros=html.ddoc --std-macros=dlang.org.ddoc --std-macros=std.ddoc --std-macros=macros.ddoc --std-macros=std-ddox.ddoc \
--override-macros=std-ddox-override.ddoc --package-order=std \
--git-target=master $(DPL_DOCS_PATH_RUN_FLAGS) \
$< ${DOC_OUTPUT_DIR}/library-prerelease
docs-prerelease.json ${DOC_OUTPUT_DIR}/library-prerelease

${DOC_OUTPUT_DIR}/library/sitemap.xml : $G/docs.json
${DOC_OUTPUT_DIR}/library/sitemap.xml : docs.json
@mkdir -p $(dir $@)
${DPL_DOCS} generate-html --file-name-style=lowerUnderscored --std-macros=html.ddoc --std-macros=dlang.org.ddoc --std-macros=std.ddoc --std-macros=macros.ddoc --std-macros=std-ddox.ddoc \
--override-macros=std-ddox-override.ddoc --package-order=std \
--git-target=v${LATEST} $(DPL_DOCS_PATH_RUN_FLAGS) \
$< ${DOC_OUTPUT_DIR}/library
docs.json ${DOC_OUTPUT_DIR}/library

${DOC_OUTPUT_DIR}/library/.htaccess : dpl_release_htaccess
@mkdir -p $(dir $@)
Expand All @@ -507,40 +507,36 @@ else
DMD_EXCLUDE += -e /scanmach/d -e /libmach/d
endif

$G/docs.json : ${DMD} ${DMD_STABLE} ${DMD_STABLE_DIR} ${DRUNTIME_STABLE_DIR} \
docs.json : ${DMD_REL} ${DRUNTIME_STABLE_DIR} \
${PHOBOS_STABLE_FILES_GENERATED} | dpl-docs
find ${DMD_STABLE_DIR}/src -name '*.d' | \
sed -e /mscoff/d -e /objc_glue.d/d -e /objc.d/d ${DMD_EXCLUDE} \
> $G/.release-files.txt
find ${DRUNTIME_STABLE_DIR}/src -name '*.d' | \
sed -e /unittest.d/d -e /gcstub/d >> $G/.release-files.txt
sed -e /unittest.d/d -e /gcstub/d > .release-files.txt
find ${PHOBOS_STABLE_DIR_GENERATED} -name '*.d' | \
sed -e /unittest.d/d -e /windows/d | sort >> $G/.release-files.txt
${DMD_STABLE} -J$(DMD_STABLE_DIR)/res -J$(dir $(DMD_STABLE)) -c -o- -version=CoreDdoc \
-version=MARS -version=CoreDdoc -version=StdDdoc -Df$G/.release-dummy.html \
-Xf$@ -I${PHOBOS_STABLE_DIR_GENERATED} @$G/.release-files.txt
${DPL_DOCS} filter $@ --min-protection=Protected \
sed -e /unittest.d/d -e /windows/d | sort >> .release-files.txt
${DMD_REL} -c -o- -version=CoreDdoc -version=StdDdoc -Df.release-dummy.html \
-Xfdocs.json -I${PHOBOS_STABLE_DIR_GENERATED} @.release-files.txt
${DPL_DOCS} filter docs.json --min-protection=Protected \
--only-documented $(MOD_EXCLUDES_PRERELEASE)
rm $G/.release-files.txt $G/.release-dummy.html
rm .release-files.txt .release-dummy.html

# DDox tries to generate the docs for all `.d` files. However for dmd this is tricky,
# because the `{mach, elf, mscoff}` are platform dependent.
# Thus the need to exclude these files (and the `objc_glue.d` file).
$G/docs-prerelease.json : ${DMD} ${DMD_DIR} ${DRUNTIME_DIR} \
docs-prerelease.json : ${DMD} ${DMD_DIR} ${DRUNTIME_DIR} \
${PHOBOS_FILES_GENERATED} | dpl-docs
find ${DMD_DIR}/src -name '*.d' | \
sed -e /mscoff/d -e /objc_glue.d/d ${DMD_EXCLUDE} \
> $G/.prerelease-files.txt
> .prerelease-files.txt
find ${DRUNTIME_DIR}/src -name '*.d' | sed -e '/gcstub/d' \
-e /unittest/d >> $G/.prerelease-files.txt
-e /unittest/d >> .prerelease-files.txt
find ${PHOBOS_DIR_GENERATED} -name '*.d' | sed -e /unittest.d/d \
-e /windows/d | sort >> $G/.prerelease-files.txt
-e /windows/d | sort >> .prerelease-files.txt
${DMD} -J$(DMD_DIR)/res -J$(dir $(DMD)) -c -o- -version=MARS -version=CoreDdoc \
-version=StdDdoc -Df$G/.prerelease-dummy.html \
-Xf$@ -I${PHOBOS_DIR_GENERATED} @$G/.prerelease-files.txt
${DPL_DOCS} filter $@ --min-protection=Protected \
-version=StdDdoc -Df.prerelease-dummy.html \
-Xfdocs-prerelease.json -I${PHOBOS_DIR_GENERATED} @.prerelease-files.txt
${DPL_DOCS} filter docs-prerelease.json --min-protection=Protected \
--only-documented $(MOD_EXCLUDES_RELEASE)
rm $G/.prerelease-files.txt $G/.prerelease-dummy.html
rm .prerelease-files.txt .prerelease-dummy.html

################################################################################
# binary targets for DDOX
Expand Down