Support "install" and "uninstall" targets, and support --prefix configure option.
[rtaudio-cdist.git] / Makefile.in
index dfebb0ebb3028afa36095318782bbc35865e61a6..5f41cc5c6cd0879894b53e4ba9e3f462d290181d 100644 (file)
@@ -2,43 +2,72 @@
 ### RtAudio library Makefile
 
 RM = /bin/rm
+LN = /bin/ln
 
-OBJECTS        = RtAudio.o
+OBJECTS        = RtAudio.o @objects@
 
-LIBRARY  = librtaudio.a
+LIBNAME = librtaudio
+STATIC = $(LIBNAME).a
+SHARED = @sharedlib@
+RELEASE = 4.0.12
+MAJOR = 4
+LIBRARIES = $(STATIC) $(SHARED)
 
 CC       = @CXX@
 AR       = @AR@
 RANLIB   = @RANLIB@
 
-DEFS     = @debug@
-DEFS    += @audio_apis@
-CFLAGS   = @cflags@
-CFLAGS  += @warn@
+DEFS     = @CPPFLAGS@
+CFLAGS   = @CXXFLAGS@ -Iinclude -fPIC
 
-all : $(LIBRARY)
+PREFIX   = @prefix@
+
+all : $(LIBRARIES)
 
 tests:
        cd tests && $(MAKE) all
 
-$(LIBRARY): $(OBJECTS)
-       $(AR) ruv $(LIBRARY) $(OBJECTS)
-       ranlib $(LIBRARY)
+$(LIBRARIES): $(OBJECTS)
+       $(AR) ruv $(STATIC) $(OBJECTS)
+       ranlib $(STATIC)
+       $(CC) -fPIC @libflags@ $(OBJECTS) @LIBS@
+       $(LN) -sf @sharedname@ $(SHARED)
+       $(LN) -sf @sharedname@ $(SHARED).$(MAJOR)
 
 %.o : %.cpp
        $(CC) $(CFLAGS) $(DEFS) -c $(<) -o $@
 
+%.o : include/%.cpp
+       $(CC) $(CFLAGS) $(DEFS) -c $(<) -o $@
+
+install:
+       install --mode=755 $(STATIC) $(PREFIX)/lib/
+       install --mode=755 @sharedname@ $(PREFIX)/lib/
+       $(LN) -sf @sharedname@ $(PREFIX)/lib/$(SHARED)
+       $(LN) -sf @sharedname@ $(PREFIX)/lib/$(SHARED).$(MAJOR)
+       install --mode=644 $(LIBNAME).pc $(PREFIX)/lib/pkgconfig
+       install --mode=644 RtAudio.h RtError.h $(PREFIX)/include/
+
+uninstall:
+       -@rm -vf $(patsubst %,$(PREFIX)/lib/%, $(LIBRARIES) $(SHARED).$(MAJOR) $(SHARED).$(RELEASE))
+       -@rm -vf $(PREFIX)/lib/pkgconfig/$(LIBNAME).pc
+
 clean : 
-       -rm -f $(LIBRARY)
-       -rm -f $(OBJECTS)
-       -rm -f *~
+       $(RM) -f $(LIBRARIES) @sharedname@ $(SHARED)*
+       $(RM) -f $(OBJECTS)
+       $(RM) -f *~
        cd tests && $(MAKE) clean
 
-distclean: clean
-       -rm -rf config.log autom4te.cache Makefile rtaudio-config
+distclean:
+       $(RM) -f $(LIBRARIES) @sharedname@ $(SHARED)*
+       $(RM) -f $(OBJECTS)
+       $(RM) -f *~
+       $(RM) -rf config.log config.status autom4te.cache Makefile rtaudio-config $(LIBNAME).pc
        cd tests && $(MAKE) distclean
 
 strip : 
-       strip $(LIBRARY)
-       ranlib $(LIBRARY)
+       strip $(LIBRARIES)
+       ranlib $(LIBRARIES)
        cd tests && $(MAKE) strip
+
+.PHONY: clean distclean strip install uninstall