Project/build/packaging adjustments + version 1.3
[measurements/measurements.git] / Makefile
index a139c25..f82ac0b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,50 +1,47 @@
-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