Project/build/packaging adjustments + version 1.3
[measurements/measurements.git] / Makefile
CommitLineData
0aa80534
MM
1NAME := measurements
2empty :=
755aed61 3
0aa80534 4ifeq ($(OOO_BASIS),)
755aed61
MM
5$(error You must source "shell-setup" in the shell before running make.)
6endif
7
3f5430db 8
23f8ad3b
MM
9all: $(NAME).oxt
10
0aa80534 11IDL_TYPES := net/mattmccutchen/measurements/XMeasurementsAddIn
23f8ad3b
MM
12
13urd/%.urd: src/%.idl
14 mkdir -p $(dir $@)
0aa80534 15 idlc -C -I$(OOO_BASIS)/sdk/idl -O$(dir $@) $<
3f5430db 16
0aa80534 17pkg/$(NAME).uno.rdb: $(patsubst %,urd/%.urd,$(IDL_TYPES))
3f5430db
MM
18 regmerge $@ /UCR $^
19
23f8ad3b
MM
20bin-types: pkg/$(NAME).uno.rdb
21 rm -rf $@
22 mkdir -p $(addprefix $@/,$(dir $(IDL_TYPES)))
3f5430db 23# javamaker is temperamental and demands the ./
0aa80534
MM
24 javamaker -BUCR -nD -T$(subst /,.,$(subst $(empty) ,;,$(IDL_TYPES))) -O./$@ $(OOO_BASIS)/ure-link/share/misc/types.rdb $<
25.PHONY: bin-types
26
27bin: src bin-types
28 # The Eclipse Java builder must be run externally to update "$@".
29.PHONY: bin
3f5430db 30
23f8ad3b
MM
31# We collect both types and implementation into this jar.
32# It seems that the manifest has to be first, so handle it specially.
0aa80534 33pkg/$(NAME).uno.jar: bin-types bin
23f8ad3b
MM
34 cd bin && fastjar -cMf ../$@ META-INF/MANIFEST.MF
35 cd bin-types && fastjar -uMf ../$@ $(addsuffix .class,$(IDL_TYPES))
36 cd bin && find . -name '*.class' | LC_COLLATE=C sort | fastjar -uMf ../$@ -@
0aa80534 37.PHONY: pkg/$(NAME).uno.jar
3f5430db 38
0aa80534
MM
39PKG_FILES := description.xml extension-description.txt \
40 META-INF/manifest.xml $(NAME).uno.rdb $(NAME).uno.jar
3f5430db 41
23f8ad3b 42$(NAME).oxt: $(addprefix pkg/,$(PKG_FILES))
3f5430db
MM
43 cd pkg && fastjar -cMf ../$@ $(PKG_FILES)
44
45clean:
0aa80534
MM
46 # Clean "bin" with the Eclipse Java builder if desired.
47 rm -rf urd pkg/$(NAME).uno.rdb bin-types pkg/$(NAME).uno.jar $(NAME).oxt