Skip to content

Commit

Permalink
Build process and app boilerplate updates
Browse files Browse the repository at this point in the history
  • Loading branch information
RebeccaRGB committed Feb 23, 2023
1 parent 9a82276 commit 212d6a1
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 20 deletions.
53 changes: 33 additions & 20 deletions main/java/OpenXION/Makefile
Expand Up @@ -3,11 +3,11 @@ INSTBINDIR = /usr/bin
CLASSPATH := $(shell find dep -name \*.jar | tr '\n' : | sed s/:$$//)
SRCFILES := $(shell find src -name \*.java)
RESFILES := $(shell find src -type f \! -name .\* \! -name \*.java | sed s/^src\\///)
PACKAGES := $(shell find src -name \*.java | sed -E s/^src\\/\|\\/[^\\/]+$$//g | sort | uniq | tr / .)
PACKAGES := $(shell find src -name \*.java | sed -E s/^src\\/\|\\/[^\\/]+$$//g | grep -v \\.java$$ | sort | uniq | tr / .)

all: clean bin doc osxclean OpenXION.jar XIONDoc.jar OpenXION-src.tgz XIONDoc-src.tgz OpenXION-test.tgz OpenXION-xndocs.tgz XION-Language-Module.tgz OpenXION-dist.zip OpenXION-distwin.zip
all: clean bin doc OpenXION.jar XIONDoc.jar OpenXION-src.tgz XIONDoc-src.tgz OpenXION-test.tgz OpenXION-xndocs.tgz XION-Language-Module.tgz OpenXION-dist.zip OpenXION-distwin.zip

eclipseall: eclipseclean osxclean OpenXION.jar XIONDoc.jar OpenXION-src.tgz XIONDoc-src.tgz OpenXION-test.tgz OpenXION-xndocs.tgz XION-Language-Module.tgz OpenXION-dist.zip OpenXION-distwin.zip
eclipseall: eclipseclean OpenXION.jar XIONDoc.jar OpenXION-src.tgz XIONDoc-src.tgz OpenXION-test.tgz OpenXION-xndocs.tgz XION-Language-Module.tgz OpenXION-dist.zip OpenXION-distwin.zip

clean:
rm -rf bin
Expand All @@ -33,48 +33,61 @@ eclipseclean:
rm -rf xndoc/doc.htmld
rm -rf dist

bin:
bin: src
mkdir -p bin
javac -cp "./bin:$(CLASSPATH)" -sourcepath src $(SRCFILES) -d bin
ifeq ($(origin JAVACFLAGS), undefined)
$(eval JAVACFLAGS = $(shell dep/minJavaVerOpts))
endif
javac $(JAVACFLAGS) -classpath "./bin:$(CLASSPATH)" -sourcepath src $(SRCFILES) -d bin
$(foreach res,$(RESFILES),cp src/$(res) bin/$(res);)

doc:
doc: src
mkdir -p doc
javadoc -cp "./bin:$(CLASSPATH)" -sourcepath src $(PACKAGES) -d doc
javadoc $(JAVADOCFLAGS) -classpath "./bin:$(CLASSPATH)" -sourcepath src $(PACKAGES) -d doc

osxclean:
OpenXION.jar: bin
export COPYFILE_DISABLE=true
find src -name .DS_Store -delete
find bin -name .DS_Store -delete
find "Sample Scripts" -name .DS_Store -delete
find XIONStdTestSuite -name .DS_Store -delete

OpenXION.jar: osxclean
rm -rf bin/META-INF
mkdir -p bin/META-INF/services
cp dep/javax.script.ScriptEngineFactory bin/META-INF/services/
jar cmf dep/MANIFEST-OXN.MF OpenXION.jar -C bin META-INF -C bin com/kreative/openxion
rm -rf bin/META-INF
chmod +x OpenXION.jar

XIONDoc.jar: osxclean
XIONDoc.jar: bin
export COPYFILE_DISABLE=true
find bin -name .DS_Store -delete
jar cmf dep/MANIFEST-XND.MF XIONDoc.jar -C bin com/kreative/xiondoc
chmod +x XIONDoc.jar

OpenXION-src.tgz: osxclean
tar -czf OpenXION-src.tgz src/com/kreative/openxion LICENSE
OpenXION-src.tgz: src
export COPYFILE_DISABLE=true
find src -name .DS_Store -delete
tar -czf OpenXION-src.tgz LICENSE src/com/kreative/openxion

XIONDoc-src.tgz: osxclean
tar -czf XIONDoc-src.tgz src/com/kreative/xiondoc LICENSE
XIONDoc-src.tgz: src
export COPYFILE_DISABLE=true
find src -name .DS_Store -delete
tar -czf XIONDoc-src.tgz LICENSE src/com/kreative/xiondoc

OpenXION-test.tgz: osxclean
OpenXION-test.tgz:
export COPYFILE_DISABLE=true
find "Sample Scripts" -name .DS_Store -delete
find XIONStdTestSuite -name .DS_Store -delete
tar -czf OpenXION-test.tgz "Sample Scripts" XIONStdTestSuite

OpenXION-xndocs.tgz: XIONDoc.jar
export COPYFILE_DISABLE=true
find xndoc -name .DS_Store -delete
java -jar XIONDoc.jar xndoc/doc.xnd > /dev/null
mv xndoc/doc.htmld xndoc/docs
tar -czf OpenXION-xndocs.tgz -C xndoc doc.xnd xiondoc-1.3.dtd docs
mv xndoc/docs xndoc/doc.htmld

XION-Language-Module.tgz:
export COPYFILE_DISABLE=true
find bbedit -name .DS_Store -delete
tar -czf XION-Language-Module.tgz -C bbedit XION.plist

OpenXION-dist.zip: OpenXION.jar XIONDoc.jar
Expand Down Expand Up @@ -186,4 +199,4 @@ install: OpenXION.jar XIONDoc.jar
chmod +x $(INSTBINDIR)/xion
chmod +x $(INSTBINDIR)/xiondoc

.PHONY: all eclipseall clean eclipseclean osxclean test xndocs localuninstall localinstall uninstall install
.PHONY: all eclipseall clean eclipseclean test xndocs localuninstall localinstall uninstall install
15 changes: 15 additions & 0 deletions main/java/OpenXION/dep/minJavaVerOpts
@@ -0,0 +1,15 @@
#!/usr/bin/env bash
echo -n 'Determining minimum version javac can compile... ' 1>&2
echo 'public class tmp {}' > tmp.java
for v in {5..100}; do
if javac -source $v -target $v tmp.java > /dev/null 2>&1; then
rm -f tmp.java tmp.class
echo "$v" 1>&2
echo "-source $v -target $v"
exit 0
fi
done
rm -f tmp.java tmp.class
echo 'Unknown' 1>&2
echo ''
exit 1

1 comment on commit 212d6a1

@tperry2x-uk
Copy link

@tperry2x-uk tperry2x-uk commented on 212d6a1 Nov 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@RebeccaRGB
Hi Rebecca, I've emailed you regarding this. I hope you don't mind.
I was wondering if you had plans to release v2 of openxion. Would you let us use it as a basis for an OpenXTalk engine?
I'm interested in integrating it with wxWidgets for GUI controls if possible?
Please can you take a look at https://www.openxtalk.org/forum/viewtopic.php?p=4701#p4701
Any information would be very highly appreciated.

Please sign in to comment.