TASKPM/doc/tools/included.mk
Ren Juan cd3274c509 TASKPM: Fork LibrePlan with Java 21 migration and rebrand
Major changes from LibrePlan upstream:

Migration to Java 21 / Tomcat 9:
- ZK Framework 9.x → 8.6.0.1 (built-in databinding)
- Removed stub classes blocking real ZK databinder
- BCrypt password fix (matches() vs equals())
- Spring Security firewall for double-slash URLs
- I18nHelper _() → tr() (Java 9+ reserved keyword)
- Hibernate TypeContributor for Jadira types
- Fixed ConfigurationModel Currency locale handling

Rebrand to TASKPM:
- Maven project names updated
- web.xml display-name → taskpm-webapp
- CSS files: libreplan.css → taskpm.css
- i18n .po files updated (all locales)
- ZUL page titles updated
- Documentation rebranded

New Features:
- PERT Chart prototype using vis.js (/planner/pert/)
- New doc chapters: 22-taskpm.rst (PERT focus)
- Deploy automation scripts (migrate/)
- Help docs deployed to webapp

Removed:
- Original .forgejo and .github CI workflows (will be replaced)

TASKPM is a personal-oriented planning package integrating
taskwarrior/timewarrior with PERT/CPM Monte Carlo scheduling.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 11:52:02 +00:00

148 lines
2.9 KiB
Makefile
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

lastword = $(if $(firstword $1),$(word $(words $1),$1))
SELF_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
utildir := SELF_DIR
#
# Makefile
# Adrian Perez, 2009-05-15 11:20
#
RST_HTML_FLAGS = --link-stylesheet --stylesheet=html/lsr.css
RST_TEX_FLAGS = --documentclass=igaliabk --font-encoding=OT1 --output-encoding=utf-8
OUTPUT_BASE = output
rst_srcs := $(filter-out index.rst,$(wildcard *.rst))
html_pages := $(patsubst %.rst,html/%.html,$(rst_srcs)) html/index.html
svg_images := $(wildcard images/*.svg)
png_images := $(patsubst %.svg,%.png,$(svg_images)) $(wildcard images/*.png)
utildir := ../../../tools/
# Main targets
#
all: html pdf
pdf: pdf/$(OUTPUT_BASE).pdf
ebook: pdf/$(OUTPUT_BASE).ebook.pdf
html: $(html_pages)
png: $(png_images)
.PHONY: html pdf ebook png
### Xavi
all_img := $(wildcard images/*)
build_images :=
src_images := $(wildcard images/*)
html_images := $(patsubst %,html/%,$(src_images))
$(html_images): html/images/%: images/%
$P copy-img $@
$Q mkdir -p $(@D)
$Q cp $< $@
### End Xavi
# Cleanup targets
#
clean:
$P clean pdf
$Q $(RM) -r pdf/
$P clean html
$Q $(RM) -r html/
# Copy CSS file
#
html/lsr.css: lsr.css
$P copy $@
$Q mkdir -p $(@D)
$Q cp $< $@
$(html_pages): html/lsr.css $(html_images)
# Top-level RST creation for the PDF
#
pdf/$(OUTPUT_BASE).rst: $(rst_srcs) docinfo
$P toplevel $@
$Q mkdir -p $(@D)
$Q $(utildir)/doctool toplevel --info=docinfo $(rst_srcs) > $@
pdf/$(OUTPUT_BASE).pdf pdf/$(OUTPUT_BASE).ebook.pdf: $(png_images)
# Index page creation for the HTML output
# DISABLED: index.rst is now manually maintained for TASKPM customization
#index.rst: $(rst_srcs) docinfo
# $P htmlindex $@
# $Q mkdir -p $(@D)
# $Q $(utildir)/doctool htmlindex --info=docinfo $(rst_srcs) > $@
# Implicit rules
#
html/%.html: %.rst
$P rst2html $@
$Q mkdir -p $(@D)
$Q $(utildir)/doctool rst2html $(RST_HTML_FLAGS) $< $@
%.tex: %.rst
$P rst2latex $@
$Q mkdir -p $(@D)
$Q $(utildir)/doctool rst2latex $(RST_TEX_FLAGS) $< $@
%.ebook.tex: %.rst
$P rst2ebook $@
$Q mkdir -p $(@D)
$Q $(utildir)/doctool rst2ebook $(RST_TEX_FLAGS) $< $@
%.pdf: %.tex
$P pdflatex $@
$Q cd $(@D) && TEXINPUTS=.:$(CURDIR): pdflatex $(PDFLATEX_FLAGS) $(CURDIR)/$<
$Q cd $(@D) && TEXINPUTS=.:$(CURDIR): pdflatex $(PDFLATEX_FLAGS) $(CURDIR)/$<
%.trim.png: %.svg
$P svg2png $@
$Q inkscape --without-gui --export-png=$@ --export-area-canvas --export-dpi=150 $<
%.png: %.trim.png
$P png-trim $@
$Q convert -trim $< $@
# Avoid removing intermediate .tex files and similar things.
#
.SECONDARY:
# Control operation verboseness
#
ifeq ($(origin V),command line)
verbose := $(V)
endif
ifndef verbose
verbose := 0
endif
ifeq ($(verbose),0)
P = @printf ' * %-10s %s\n'
Q = @
PDFLATEX_FLAGS += -interaction batchmode
else
P = @:
endif
# Check for the U= command line argument
#
ifeq ($(origin U),command line)
utildir := $(U)
endif
ifndef utildir
utildir := $(CURDIR)
endif
# vim:ft=make
#