-NAME:=measurements
-empty:=
+NAME := measurements
+empty :=
-# $(OO) is now taken from shell-setup.
-ifeq ($(OO),)
+ifeq ($(OOO_BASIS),)
$(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.
+IDL_TYPES := net/mattmccutchen/measurements/XMeasurementsAddIn
urd/%.urd: src/%.idl
mkdir -p $(dir $@)
- idlc -C -I$(OO)/sdk/idl -O$(dir $@) $<
-
-%/.:
- mkdir -p $*
+ idlc -C -I$(OOO_BASIS)/sdk/idl -O$(dir $@) $<
-pkg/$(NAME).uno.rdb: $(patsubst %,urd/%.urd,$(IDL_TYPES)) pkg/.
+pkg/$(NAME).uno.rdb: $(patsubst %,urd/%.urd,$(IDL_TYPES))
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 $<
+ 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.
-.PHONY: pkg/$(NAME).uno.jar
-pkg/$(NAME).uno.jar: bin-types pkg/.
+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:=META-INF/manifest.xml $(NAME).uno.jar $(NAME).uno.rdb
-
-pkg/META-INF/manifest.xml: src/META-INF/manifest.xml pkg/META-INF/.
- cat $< >$@
+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:
- rm -rf urd bin-types pkg $(NAME).oxt
+ # Clean "bin" with the Eclipse Java builder if desired.
+ rm -rf urd pkg/$(NAME).uno.rdb bin-types pkg/$(NAME).uno.jar $(NAME).oxt