obj = spnav.o $(magellan_obj) hdr = spnav.h spnav_magellan.h spnav_config.h name = spnav lib_a = lib$(name).a incpaths = -I. -I/usr/local/include -I/usr/X11R6/include libpaths = -L/usr/local/lib -L/usr/X11R6/lib CC = gcc AR = ar CFLAGS = $(opt) $(dbg) -std=c89 $(pic) -pedantic -Wall -fno-strict-aliasing $(incpaths) $(user_cflags) LDFLAGS = $(libpaths) $(user_ldflags) $(xlib) ifeq ($(shell uname -s), Darwin) lib_so = libspnav.dylib shared = -dynamiclib else devlink = lib$(name).so soname = $(devlink).$(so_major) lib_so = $(soname).$(so_minor) shared = -shared -Wl,-soname,$(soname) pic = -fPIC endif .PHONY: all all: $(lib_a) $(lib_so) $(lib_a): $(obj) $(AR) rcs $@ $(obj) $(lib_so): $(obj) $(CC) $(shared) -o $@ $(obj) $(LDFLAGS) %.o: $(srcdir)/%.c $(CC) $(CFLAGS) -c $< -o $@ .PHONY: clean clean: rm -f $(obj) .PHONY: cleandist distclean: rm -f $(obj) $(lib_a) $(lib_so) Makefile .PHONY: install install: $(lib_a) $(lib_so) mkdir -p $(DESTDIR)$(PREFIX)/$(libdir) $(DESTDIR)$(PREFIX)/include cp $(lib_a) $(DESTDIR)$(PREFIX)/$(libdir)/$(lib_a) cp $(lib_so) $(DESTDIR)$(PREFIX)/$(libdir)/$(lib_so) [ -n "$(soname)" ] && \ rm -f $(DESTDIR)$(PREFIX)/$(libdir)/$(soname) $(DESTDIR)$(PREFIX)/$(libdir)/$(devlink) && \ ln -s $(DESTDIR)$(PREFIX)/$(libdir)/$(lib_so) $(DESTDIR)$(PREFIX)/$(libdir)/$(soname) && \ ln -s $(DESTDIR)$(PREFIX)/$(libdir)/$(soname) $(DESTDIR)$(PREFIX)/$(libdir)/$(devlink) || \ true for h in $(hdr); do cp -p $(srcdir)/$$h $(DESTDIR)$(PREFIX)/include/; done .PHONY: uninstall uninstall: rm -f $(DESTDIR)$(PREFIX)/$(libdir)/$(lib_a) rm -f $(DESTDIR)$(PREFIX)/$(libdir)/$(lib_so) [ -n "$(soname)" ] && \ rm -f $(DESTDIR)$(PREFIX)/$(libdir)/$(soname) $(DESTDIR)$(PREFIX)/$(libdir)/$(devlink) || \ true for i in $(hdr); do rm -f $(DESTDIR)$(PREFIX)/include/$$i; done