--- a/pm_linux/Makefile	2009-10-30 13:16:31.000000000 +0100
+++ b/pm_linux/Makefile	2009-10-30 13:17:08.000000000 +0100
@@ -31,10 +31,14 @@
 # VFLAGS = -DPMNULL
 
 pmlib = pm_linux/libportmidi.a
+pmslib = pm_linux/libportmidi.so.0.0.0
 
 ptlib = porttime/libporttime.a
+ptslib = porttime/libporttime.so.0.0.0
 
-CC = gcc $(VFLAGS) $(PMFLAGS) -g -Ipm_common -Iporttime
+CC = gcc $(CFLAGS) $(VFLAGS) $(PMFLAGS) -g -Ipm_common -Iporttime
+
+INSTALL = install
 
 pmobjects = pm_common/pmutil.o $(versions) pm_linux/pmlinux.o  \
 	pm_common/portmidi.o pm_linux/finddefault.o
@@ -43,16 +47,29 @@
 
 current: all
 
-all: $(pmlib) $(ptlib) pm_test/test pm_test/sysex pm_test/midithread \
-	pm_test/latency pm_test/midithru pm_test/qtest pm_test/mm \
+all: $(pmlib) $(pmslib) $(ptlib) $(ptslib) \
+	pm_test/test pm_test/sysex pm_test/midithread \
+	pm_test/latency pm_test/midithru pm_test/qtest pm_test/mm
+
+pmdefaults:	\
 	pm_java/pmjni/libpmjni.so pm_java/pmdefaults/pmdefaults.jar 
 
 $(pmlib): pm_linux/Makefile $(pmobjects)
 	ar -cr $(pmlib) $(pmobjects)
 
+$(pmslib): pm_linux/Makefile $(pmsobjects) $(ptslib)
+	$(CC) -shared $(ALSALIB) $(pmobjects) -Wl,-soname -Wl,libportmidi.so.0 -Lporttime -lporttime -o $(pmslib)
+	ln -sf $(notdir $(pmslib)) pm_linux/libportmidi.so.0
+	ln -sf $(notdir $(pmslib)) pm_linux/libportmidi.so
+
 $(ptlib): pm_linux/Makefile $(ptobjects)
 	ar -cr $(ptlib) $(ptobjects)
 
+$(ptslib): pm_linux/Makefile $(ptobjects)
+	$(CC) -shared $(ptobjects) -Wl,-soname -Wl,libporttime.so.0 -lpthread -o $(ptslib)
+	ln -sf $(notdir $(ptslib)) porttime/libporttime.so.0
+	ln -sf $(notdir $(ptslib)) porttime/libporttime.so
+
 pm_linux/pmlinuxalsa.o: pm_linux/Makefile pm_linux/pmlinuxalsa.c pm_linux/pmlinuxalsa.h
 	$(CC) -c pm_linux/pmlinuxalsa.c -o pm_linux/pmlinuxalsa.o
 
@@ -152,6 +169,14 @@
 	# do not chmod +x here since we are probably root
 	cp pm_java/pmdefaults/pmdefaults /usr/local/bin
 
+install: 
+	$(INSTALL) -d $(DESTDIR)/usr/include/
+	$(INSTALL) -m 644 pm_common/portmidi.h $(DESTDIR)/usr/include/
+	$(INSTALL) -m 644 porttime/porttime.h $(DESTDIR)/usr/include/
+	$(INSTALL) -d $(DESTDIR)/usr/lib/
+	$(INSTALL) -m 644 pm_linux/libportmidi* $(DESTDIR)/usr/lib/
+	$(INSTALL) -m 644 porttime/libporttime* $(DESTDIR)/usr/lib/
+
 clean:
 	rm -f *.o *~ core* */*.o */*.so */*~ */core* pm_test/*/pm_dll.dll 
 	rm -f *.opt *.ncb *.plg pm_win/Debug/pm_dll.lib pm_win/Release/pm_dll.lib
@@ -162,6 +187,7 @@
 cleanest: cleaner
 	rm -f $(pmlib) $(ptlib) pm_test/test pm_test/sysex pm_test/midithread
 	rm -f pm_test/latency pm_test/midithru pm_test/qtest pm_test/mm
+	rm -f $(ptslib) $(pmslib)
 
 backup: cleanest
 	cd ..; zip -r portmidi.zip portmidi

