NAME:=measurements empty:= # $(OO) is now taken from shell-setup. ifeq ($(OO),) $(error You must source "shell-setup" in the shell before running make.) endif IDL_TYPES:=net/mattmccutchen/measurements/XMeasurementsAddIn all: $(NAME).oxt # Compile src -> bin using Eclipse's Java Builder. urd/%.urd: src/%.idl mkdir -p $(dir $@) idlc -C -I$(OO)/sdk/idl -O$(dir $@) $< %/.: mkdir -p $* pkg/$(NAME).uno.rdb: $(patsubst %,urd/%.urd,$(IDL_TYPES)) pkg/. regmerge $@ /UCR $^ .PHONY: bin-types 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./$@ $(OO)/ure-link/share/misc/types.rdb $< # We collect both types and implementation into this jar. # It seems that the manifest has to be first, so handle it specially. .PHONY: pkg/$(NAME).uno.jar pkg/$(NAME).uno.jar: bin-types pkg/. 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 ../$@ -@ PKG_FILES:=META-INF/manifest.xml $(NAME).uno.jar $(NAME).uno.rdb pkg/META-INF/manifest.xml: src/META-INF/manifest.xml pkg/META-INF/. cat $< >$@ $(NAME).oxt: $(addprefix pkg/,$(PKG_FILES)) cd pkg && fastjar -cMf ../$@ $(PKG_FILES) clean: rm -rf urd bin-types pkg $(NAME).oxt