NAME := measurements empty := ifeq ($(OOO_BASIS),) $(error You must source "shell-setup" in the shell before running make.) endif all: $(NAME).oxt IDL_TYPES := net/mattmccutchen/measurements/XMeasurementsAddIn urd/%.urd: src/%.idl mkdir -p $(dir $@) idlc -C -I$(OOO_BASIS)/sdk/idl -O$(dir $@) $< pkg/$(NAME).uno.rdb: $(patsubst %,urd/%.urd,$(IDL_TYPES)) regmerge $@ /UCR $^ bin-types: pkg/$(NAME).uno.rdb rm -rf $@ mkdir -p $(addprefix $@/,$(dir $(IDL_TYPES))) # javamaker is temperamental and demands the ./ javamaker -BUCR -nD -T$(subst /,.,$(subst $(empty) ,;,$(IDL_TYPES))) -O./$@ $(OOO_BASIS)/ure-link/share/misc/types.rdb $< .PHONY: bin-types bin: src bin-types # The Eclipse Java builder must be run externally to update "$@". .PHONY: bin # We collect both types and implementation into this jar. # It seems that the manifest has to be first, so handle it specially. pkg/$(NAME).uno.jar: bin-types bin cd bin && fastjar -cMf ../$@ META-INF/MANIFEST.MF cd bin-types && fastjar -uMf ../$@ $(addsuffix .class,$(IDL_TYPES)) cd bin && find . -name '*.class' | LC_COLLATE=C sort | fastjar -uMf ../$@ -@ .PHONY: pkg/$(NAME).uno.jar PKG_FILES := description.xml extension-description.txt \ META-INF/manifest.xml $(NAME).uno.rdb $(NAME).uno.jar $(NAME).oxt: $(addprefix pkg/,$(PKG_FILES)) cd pkg && fastjar -cMf ../$@ $(PKG_FILES) clean: # Clean "bin" with the Eclipse Java builder if desired. rm -rf urd pkg/$(NAME).uno.rdb bin-types pkg/$(NAME).uno.jar $(NAME).oxt