blob: 1ad3f8f9a519aeb1fbbbac0e54b6af03494045fb [file] [log] [blame]
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (C) 2009-2013 IBM and Others. All Rights Reserved
#
#
#
#Usage:
# make OLD_ICU=/xsrl/E/401m40 NEW_ICU=/xsrl/E/icu4ct42
#
# you can put the OLD_ICU=xx and NEW_ICU=yy in separate lines in Makefile.local
#
ANT=ant
ANT_TARGET=apireport
DOXYGEN=doxygen
-include Makefile.local
TARGET=APIChangeReport.html
MD_TARGET=APIChangeReport.md
NOTSET=
ifeq ($(OLD_ICU),)
NOTSET:="$(NOTSET) OLD_ICU"
endif
ifeq ($(NEW_ICU),)
NOTSET:="$(NOTSET) NEW_ICU"
endif
ifeq ($(NEW_ICU_BUILD),)
NEW_ICU_BUILD:=$(NEW_ICU)/source
endif
ifeq ($(OLD_ICU_BUILD),)
OLD_ICU_BUILD:=$(OLD_ICU)/source
endif
all: $(TARGET) $(LOCAL_TARGET) $(MD_TARGET)
# auto "build" the "old" icu into OLD_ICU_BUILD
tmp-old: $(OLD_ICU)/source/configure
mkdir -p $(OLD_ICU_BUILD)/
( cd $(OLD_ICU_BUILD)/ && $(OLD_ICU)/source/configure )
# auto "build" the "old" icu into OLD_ICU_BUILD
tmp-new: $(NEW_ICU)/source/configure
mkdir -p $(NEW_ICU_BUILD)/
( cd $(NEW_ICU_BUILD)/ && $(NEW_ICU)/source/configure )
inplace-old: $(OLD_ICU)/source/configure
mkdir -p $(OLD_ICU_BUILD)/
( cd $(OLD_ICU_BUILD)/ && ./configure )
# auto "build" the "old" icu into OLD_ICU_BUILD
inplace-new: $(NEW_ICU)/source/configure
mkdir -p $(NEW_ICU_BUILD)/
( cd $(NEW_ICU_BUILD)/ && ./configure )
ifneq ($(NOTSET),)
check-vars:
@echo "Error: please set $(NOTSET) in Makefile.local or on the command line."
false
else
check-vars:
endif
.PHONY: check-vars classes clean-docs tmp-old
.PRECIOUS: $(TARGET) $(OLD_ICU_BUILD)/$(DOXYFILE) $(NEW_ICU_BUILD)/$(DOXYFILE)
#######
DOXYFILE=Doxyfile
XML=doc/xml
UVERSIONH=$(XML)/uversion_8h.xml
clean-docs: | check-vars
-rm -rf "$(OLD_ICU_BUILD)/$(XML)" "$(NEW_ICU_BUILD)/$(XML)"
$(TARGET): check-vars $(OLD_ICU_BUILD)/$(XML) $(NEW_ICU_BUILD)/$(XML)
echo "Remember to run the non-ascii file detector if you get errors."
$(ANT) -Dolddir="$(OLD_ICU_BUILD)/$(XML)" -Dnewdir="$(NEW_ICU_BUILD)/$(XML)" $(ANT_TARGET)
echo "If you get no-changes, see the readme- may need to add xalan/xerces jars."
# check-vars $(OLD_ICU_BUILD)/$(XML) $(NEW_ICU_BUILD)/$(XML)
APIChangeReport.xml: $(OLD_ICU_BUILD)/$(XML) $(NEW_ICU_BUILD)/$(XML)
echo "Remember to run the non-ascii file detector if you get errors."
$(ANT) -Dolddir="$(OLD_ICU_BUILD)/$(XML)" -Dnewdir="$(NEW_ICU_BUILD)/$(XML)" $(ANT_TARGET)_xml
APIChangeReport.md: $(OLD_ICU_BUILD)/$(XML) $(NEW_ICU_BUILD)/$(XML)
echo "Remember to run the non-ascii file detector if you get errors."
$(ANT) -Dolddir="$(OLD_ICU_BUILD)/$(XML)" -Dnewdir="$(NEW_ICU_BUILD)/$(XML)" $(ANT_TARGET)_md
%/doc/xml: %/Doxyfile
# don't care what GENERATE_XML is set to previously - set it to yes.
@echo running doxygen ..
( cd "$*/" && ( (cat ./Doxyfile | grep -v '^GENERATE_') ; echo 'GENERATE_XML=YES') | $(DOXYGEN) - )
@echo doxygen done in $*
%/Doxyfile: %/Makefile
@echo generating $@
@$(MAKE) -C "$*/" Doxyfile || ( echo "could not make Doxyfile in $* - was doxygen available?" ; false )
#%/source/Makefile: %/source/Makefile.in
# @echo "$@ does not seem to exist - was configure run?" ; false