diff options
| author | Keith Packard <keithp@keithp.com> | 2010-09-04 17:27:17 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2010-09-04 17:27:17 -0700 | 
| commit | 887b11f6b9c81b9f15348d54017e700ca7dc5e55 (patch) | |
| tree | e48a60cec7dcf2c3435e4f7e061002bbfdb08e4f | |
| parent | e844e8a0695e27af6f8e3e37a5e3bcc865b862e3 (diff) | |
Use autotools for altosui and libaltos
This switches from hand-written Makefiles to automake with libtool
for these parts of the system.
Signed-off-by: Keith Packard <keithp@keithp.com>
| -rw-r--r-- | ao-tools/altosui/AltosUI.java | 2 | ||||
| -rw-r--r-- | ao-tools/altosui/Makefile-standalone (renamed from ao-tools/altosui/Makefile) | 0 | ||||
| -rw-r--r-- | ao-tools/altosui/Makefile.am | 165 | ||||
| -rw-r--r-- | ao-tools/altosui/altos-windows.nsi | 20 | ||||
| -rwxr-xr-x | ao-tools/altosui/altosui-fat | 4 | ||||
| -rw-r--r-- | ao-tools/libaltos/.gitignore | 12 | ||||
| -rw-r--r-- | ao-tools/libaltos/Makefile-standalone (renamed from ao-tools/libaltos/Makefile) | 2 | ||||
| -rw-r--r-- | ao-tools/libaltos/Makefile.am | 27 | ||||
| -rw-r--r-- | configure.ac | 39 | 
9 files changed, 259 insertions, 12 deletions
| diff --git a/ao-tools/altosui/AltosUI.java b/ao-tools/altosui/AltosUI.java index eb376be4..37625e8e 100644 --- a/ao-tools/altosui/AltosUI.java +++ b/ao-tools/altosui/AltosUI.java @@ -75,7 +75,7 @@ public class AltosUI extends JFrame {  		String[] statusNames = { "Height (m)", "State", "RSSI (dBm)", "Speed (m/s)" };  		Object[][] statusData = { { "0", "pad", "-50", "0" } }; -		java.net.URL imgURL = AltosUI.class.getResource("/images/altus-metrum-16x16.jpg"); +		java.net.URL imgURL = AltosUI.class.getResource("/altus-metrum-16x16.jpg");  		if (imgURL != null)  			setIconImage(new ImageIcon(imgURL).getImage()); diff --git a/ao-tools/altosui/Makefile b/ao-tools/altosui/Makefile-standalone index 90621f36..90621f36 100644 --- a/ao-tools/altosui/Makefile +++ b/ao-tools/altosui/Makefile-standalone diff --git a/ao-tools/altosui/Makefile.am b/ao-tools/altosui/Makefile.am new file mode 100644 index 00000000..20c8b26d --- /dev/null +++ b/ao-tools/altosui/Makefile.am @@ -0,0 +1,165 @@ +JAVAROOT=classes + +CLASSPATH_ENV=CLASSPATH="classes/altosui/*:../libaltos/libaltosJNI/*:$(FREETTS)/*:/usr/share/java/*" + +altosui_JAVA = \ +	AltosChannelMenu.java \ +	AltosConfig.java \ +	AltosConfigUI.java \ +	AltosConvert.java \ +	AltosCRCException.java \ +	AltosCSV.java \ +	AltosCSVUI.java \ +	AltosDebug.java \ +	AltosDeviceDialog.java \ +	AltosDevice.java \ +	AltosEepromDownload.java \ +	AltosEepromMonitor.java \ +	AltosEepromReader.java \ +	AltosEepromRecord.java \ +	AltosFile.java \ +	AltosFlash.java \ +	AltosFlashUI.java \ +	AltosFlightInfoTableModel.java \ +	AltosFlightStatusTableModel.java \ +	AltosGPS.java \ +	AltosGreatCircle.java \ +	AltosHexfile.java \ +	Altos.java \ +	AltosLine.java \ +	AltosLogfileChooser.java \ +	AltosLog.java \ +	AltosParse.java \ +	AltosPreferences.java \ +	AltosReader.java \ +	AltosRecord.java \ +	AltosRomconfig.java \ +	AltosRomconfigUI.java \ +	AltosSerial.java \ +	AltosSerialMonitor.java \ +	AltosState.java \ +	AltosTelemetry.java \ +	AltosTelemetryReader.java \ +	AltosUI.java \ +	AltosVoice.java + +FREETTS_CLASS= \ +	cmudict04.jar \ +	cmulex.jar \ +	cmu_time_awb.jar \ +	cmutimelex.jar \ +	cmu_us_kal.jar \ +	en_us.jar \ +	freetts.jar + +LIBALTOS= \ +	libaltos.so \ +	libaltos.dylib \ +	altos.dll + +JAR=altosui.jar + +FATJAR=altosui-fat.jar + +# Icons +JAVA_ICON=$(top_srcdir)/icon/altus-metrum-16x16.jpg +WINDOWS_ICON=$(top_srcdir)/icon/altus-metrum.ico + +# Firmware +FIRMWARE_TD=$(top_srcdir)/src/teledongle-v0.2.ihx +FIRMWARE_TM=$(top_srcdir)/src/telemetrum-v1.0.ihx +FIRMWARE=$(FIRMWARE_TM) $(FIRMWARE_TD) + +# Distribution targets +LINUX_DIST=Altos-Linux-$(VERSION).tar.bz2 +MACOSX_DIST=Altos-Mac-$(VERSION).zip +WINDOWS_DIST=Altos-Windows-$(VERSION_DASH).exe + +FAT_FILES=$(FATJAR) $(FREETTS_CLASS) + +LINUX_FILES=$(FAT_FILES) libaltos.so + +MACOSX_FILES=$(FAT_FILES) libaltos.dylib +MACOSX_EXTRA=$(FIRMWARE) + +WINDOWS_FILES=$(FAT_FILES) altos.dll $(top_srcdir)/telemetrum.inf $(WINDOWS_ICON) + +all-local: classes/altosui $(JAR) $(FATJAR) + +clean-local: +	-rm -rf classes/altosui $(JAR) $(FATJAR) \ +		$(LINUX_DIST) $(MACOSX_DIST) $(WINDOWS_DIST) $(FREETTS_CLASS) \ +		$(LIBALTOS) Manifest.txt Manifest-fat.txt altos-windows.log \ +		altosui altosui-test macosx linux + +fat: $(FATJAR) $(LINUX_DIST) $(MACOSX_DIST) $(WINDOWS_DIST) + +altosuidir=$(datadir)/java + +install-altosuiJAVA: altosui.jar +	@$(NORMAL_INSTALL) +	test -z "$(altosuidir)" || $(MKDIR_P) "$(DESTDIR)$(altosuidir)" +	echo " $(INSTALL_DATA)" "$<" "'$(DESTDIR)$(altosuidir)/altosui.jar'"; \ +	$(INSTALL_DATA) "$<" "$(DESTDIR)$(altosuidir)" + +classes/altosui: +	mkdir -p classes/altosui + +$(JAR): classaltosui.stamp Manifest.txt $(JAVA_ICON) +	jar cfm $@ Manifest.txt \ +		-C $(top_srcdir)/icon altus-metrum-16x16.jpg \ +		-C classes altosui \ +		-C ../libaltos libaltosJNI + +$(FATJAR): classaltosui.stamp Manifest-fat.txt $(FREETTS_CLASS) $(LIBALTOS) $(JAVA_ICON) +	jar cfm $@ Manifest-fat.txt \ +		-C $(top_srcdir)/icon altus-metrum-16x16.jpg \ +		-C classes altosui \ +		-C ../libaltos libaltosJNI + +Manifest.txt: Makefile +	echo 'Main-Class: altosui.AltosUI' > $@ +	echo "Class-Path: $(FREETTS)/freetts.jar" >> $@ + +Manifest-fat.txt: +	echo 'Main-Class: altosui.AltosUI' > $@ +	echo "Class-Path: freetts.jar" >> $@ + +altosui: Makefile +	echo "#!/bin/sh" > $@ +	echo 'exec java  -cp "$(FREETTS)/*" -Djava.library.path="$(libdir)" -jar "$(altosuidir)/altosui.jar"' >> $@ +	chmod +x $@ + +altosui-test: Makefile +	echo "#!/bin/sh" > $@ +	echo 'exec java -cp "$(FREETTS)/*" -Djava.library.path="../libaltos" -jar altosui.jar' >> $@ +	chmod +x $@ + +$(LIBALTOS): +	-rm -f "$@" +	$(LN_S) ../libaltos/"$@" . + +$(FREETTS_CLASS): Makefile +	-rm -f "$@" +	$(LN_S) "$(FREETTS)"/"$@" . + +$(LINUX_DIST): $(LINUX_FILES) +	-rm -f $@ +	-rm -rf linux +	mkdir -p linux/AltOS +	cp -a $(LINUX_FILES) linux/AltOS +	tar cjf $@ -C linux AltOS + +$(MACOSX_DIST): $(MACOSX_FILES) $(MACOSX_EXTRA) +	-rm -f $@ +	-rm -rf macosx +	mkdir macosx +	cp -a AltosUI.app macosx/ +	mkdir -p macosx/AltOS macosx/AltosUI.app/Contents/Resources/Java +	cp -a $(MACOSX_FILES) macosx/AltosUI.app/Contents/Resources/Java +	cp -a $(MACOSX_EXTRA) macosx/AltOS +	cd macosx && zip -r ../$@ AltosUI.app AltOS + +$(WINDOWS_DIST): $(WINDOWS_FILES) altos-windows.nsi +	-rm -f $@ +	makensis -Oaltos-windows.log "-XOutFile $@" altos-windows.nsi
\ No newline at end of file diff --git a/ao-tools/altosui/altos-windows.nsi b/ao-tools/altosui/altos-windows.nsi index 5ac708f9..6f38ac0e 100644 --- a/ao-tools/altosui/altos-windows.nsi +++ b/ao-tools/altosui/altos-windows.nsi @@ -2,8 +2,6 @@  Name "Altus Metrum Installer" -OutFile "Altos-Windows.exe" -  ; Default install directory  InstallDir "$PROGRAMFILES\AltusMetrum" @@ -47,10 +45,18 @@ SectionEnd  Section "AltosUI Application"  	SetOutPath $INSTDIR -	File "windows/AltOS/*.jar" -	File "windows/AltOS/*.dll" +	File "altosui.jar" +	File "cmudict04.jar" +	File "cmulex.jar" +	File "cmu_time_awb.jar" +	File "cmutimelex.jar" +	File "cmu_us_kal.jar" +	File "en_us.jar" +	File "freetts.jar" + +	File "*.dll" -	File "windows/AltOS/*.ico" +	File "../../icon/*.ico"  	CreateShortCut "$SMPROGRAMS\AltusMetrum.lnk" "$INSTDIR\altosui.jar" "" "$INSTDIR\altus-metrum.ico"  SectionEnd @@ -63,8 +69,8 @@ Section "TeleMetrum and TeleDongle Firmware"  	SetOutPath $INSTDIR -	File "windows/AltOS/telemetrum-v1.0.ihx" -	File "windows/AltOS/teledongle-v0.2.ihx" +	File "../../src/telemetrum-v1.0/telemetrum-v1.0.ihx" +	File "../../src/teledongle-v0.2/teledongle-v0.2.ihx"  SectionEnd diff --git a/ao-tools/altosui/altosui-fat b/ao-tools/altosui/altosui-fat new file mode 100755 index 00000000..a95b78b8 --- /dev/null +++ b/ao-tools/altosui/altosui-fat @@ -0,0 +1,4 @@ +#!/bin/sh +me=`which "$0"` +dir=`dirname "$me"` +exec java -cp "$dir/*" -Djava.library.path="$dir" -jar "$dir"/altosui.jar diff --git a/ao-tools/libaltos/.gitignore b/ao-tools/libaltos/.gitignore new file mode 100644 index 00000000..c490e6f8 --- /dev/null +++ b/ao-tools/libaltos/.gitignore @@ -0,0 +1,12 @@ +*.so +*.lo +*.la +*.java +*.class +.libs/ +classlibaltos.stamp +libaltos_wrap.c +libaltosJNI +cjnitest +libaltos.swig +swig_bindings/ diff --git a/ao-tools/libaltos/Makefile b/ao-tools/libaltos/Makefile-standalone index cb767c85..4e438050 100644 --- a/ao-tools/libaltos/Makefile +++ b/ao-tools/libaltos/Makefile-standalone @@ -66,7 +66,7 @@ SWIG_FILE=$(SWIG_DIR)/libaltos.swig  SWIG_WRAP=$(SWIG_DIR)/libaltos_wrap.c  JNI_DIR=libaltosJNI -JNI_FILE=$(JNI_DIR)/libaltosJNI.java  +JNI_FILE=$(JNI_DIR)/libaltosJNI.java  JNI_SRCS=$(JNI_FILE) \  	$(JNI_DIR)/SWIGTYPE_p_altos_file.java \  	$(JNI_DIR)/SWIGTYPE_p_altos_list.java \ diff --git a/ao-tools/libaltos/Makefile.am b/ao-tools/libaltos/Makefile.am new file mode 100644 index 00000000..2f1d6fca --- /dev/null +++ b/ao-tools/libaltos/Makefile.am @@ -0,0 +1,27 @@ +JAVAC=javac +AM_CFLAGS="-I$(JVM_INCLUDE)" + +lib_LTLIBRARIES=libaltos.la + +libaltos_la_SOURCES=\ +	libaltos.c + +HFILES=libaltos.h + +SWIG_FILE=libaltos.swig + +CLASSDIR=libaltosJNI + +$(SWIG_FILE): libaltos.i0 $(HFILES) +	sed 's;//%;%;' libaltos.i0 $(HFILES) > $(SWIG_FILE) + +all-local: classlibaltos.stamp + +classlibaltos.stamp: $(SWIG_FILE) +	swig -java -package libaltosJNI $(SWIG_FILE) +	mkdir -p libaltosJNI +	$(JAVAC) -d . $(AM_JAVACFLAGS) $(JAVACFLAGS) *.java && \ +	touch classlibaltos.stamp + +clean-local: +	-rm -rf libaltosJNI *.class *.java classlibaltos.stamp $(SWIG_FILE)
\ No newline at end of file diff --git a/configure.ac b/configure.ac index fafc6b34..19ae0ac8 100644 --- a/configure.ac +++ b/configure.ac @@ -17,19 +17,50 @@ dnl  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.  dnl  dnl Process this file with autoconf to create configure. -AC_INIT(COPYING) - -AM_INIT_AUTOMAKE(altos, 0.1) +AC_PREREQ(2.57) +AC_INIT([altos], 0.7.1) +AC_CONFIG_SRCDIR([src/ao.h]) +AM_INIT_AUTOMAKE([foreign dist-bzip2])  AM_MAINTAINER_MODE +VERSION_DASH=`echo $VERSION | sed 's/\./-/g'` +AC_SUBST(VERSION_DASH) +  dnl ==========================================================================  AM_CONFIG_HEADER(config.h) +AC_ARG_WITH(freetts, AS_HELP_STRING([--with-freetts=PATH], +	[Set freetts class path (default /usr/share/java)]), +	[FREETTS=$withval], [FREETTS=/usr/share/java]) + +AC_SUBST(FREETTS) + +AC_ARG_WITH(jvm, AS_HELP_STRING([--with-jvm-include=PATH], +	[Set jvm include path for jni builds (default searches in /usr/lib/jvm)]), +	[JVM_INCLUDE=$withval], [JVM_INCLUDE=auto]) + +if test "x$JVM_INCLUDE" = "xauto"; then +	AC_MSG_CHECKING([JVM include files]) +	for jvm in default-java java-6-openjdk java-6-sun; do +		if test "x$JVM_INCLUDE" = "xauto"; then +			INCLUDE="/usr/lib/jvm/$jvm/include" +			if test -f "$INCLUDE"/jni.h; then +				JVM_INCLUDE="$INCLUDE" +			fi +		fi +	done +	if test "x$JVM_INCLUDE" = "xauto"; then +		AC_MSG_ERROR([no JVM include files found]) +	fi +	AC_MSG_RESULT([$JVM_INCLUDE]) +fi +  AC_PROG_CC  AC_PROG_INSTALL  AC_PROG_LN_S  AC_PROG_RANLIB +AC_PROG_LIBTOOL  PKG_PROG_PKG_CONFIG  CFLAGS="-g" @@ -92,5 +123,7 @@ ao-tools/ao-list/Makefile  ao-tools/ao-load/Makefile  ao-tools/ao-postflight/Makefile  ao-tools/ao-view/Makefile +ao-tools/libaltos/Makefile +ao-tools/altosui/Makefile  ao-utils/Makefile  ]) | 
