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