X-Git-Url: https://mattmccutchen.net/measurements/measurements.git/blobdiff_plain/8aac8f4e2ed12ac90d9a5b91375e0a15631e0cfe..HEAD:/Makefile diff --git a/Makefile b/Makefile index a139c25..f82ac0b 100644 --- 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