11
22obj = spnav.o $(magellan_obj )
33hdr = spnav.h spnav_magellan.h spnav_config.h
4- lib_a = libspnav.a
5- soname = libspnav.so.0
6- lib_so = $(soname ) .1
7- devlink = libspnav.so
4+
5+ name = spnav
6+ lib_a = lib$(name ) .a
7+
8+ incpaths = -I. -I/usr/local/include -I/usr/X11R6/include
9+ libpaths = -L/usr/local/lib -L/usr/X11R6/lib
810
911CC = gcc
1012AR = ar
11- CFLAGS = $(opt ) $(dbg ) -std=c89 -fpic -pedantic -Wall -fno-strict-aliasing -I. -I/usr/local/include $(user_cflags )
12- LDFLAGS = $(user_ldflags )
13+ CFLAGS = $(opt ) $(dbg ) -std=c89 $(pic ) -pedantic -Wall -fno-strict-aliasing $(incpaths ) $(user_cflags )
14+ LDFLAGS = $(libpaths ) $(user_ldflags ) $(xlib )
15+
16+ ifeq ($(shell uname -s) , Darwin)
17+ lib_so = libspnav.dylib
18+ shared = -dynamiclib
19+ else
20+ devlink = lib$(name).so
21+ soname = $(devlink).$(so_major)
22+ lib_so = $(soname).$(so_minor)
23+ shared = -shared -Wl,-soname,$(soname)
24+ pic = -fPIC
25+ endif
26+
1327
1428.PHONY : all
1529all : $(lib_a ) $(lib_so )
@@ -18,7 +32,7 @@ $(lib_a): $(obj)
1832 $(AR ) rcs $@ $(obj )
1933
2034$(lib_so ) : $(obj )
21- $(CC ) -shared -Wl,-soname, $( soname ) -o $@ $(obj ) $(LDFLAGS )
35+ $(CC ) $( shared ) -o $@ $(obj ) $(LDFLAGS )
2236
2337% .o : $(srcdir ) /% .c
2438 $(CC ) $(CFLAGS ) -c $< -o $@
@@ -36,16 +50,19 @@ install: $(lib_a) $(lib_so)
3650 mkdir -p $(DESTDIR )$(PREFIX ) /$(libdir ) $(DESTDIR )$(PREFIX ) /include
3751 cp $(lib_a ) $(DESTDIR )$(PREFIX ) /$(libdir ) /$(lib_a )
3852 cp $(lib_so ) $(DESTDIR )$(PREFIX ) /$(libdir ) /$(lib_so )
39- rm -f $(DESTDIR )$(PREFIX ) /$(libdir ) /$(soname ) $(DESTDIR )$(PREFIX ) /$(libdir ) /$(devlink )
40- ln -s $(DESTDIR )$(PREFIX ) /$(libdir ) /$(lib_so ) $(DESTDIR )$(PREFIX ) /$(libdir ) /$(soname )
41- ln -s $(DESTDIR )$(PREFIX ) /$(libdir ) /$(soname ) $(DESTDIR )$(PREFIX ) /$(libdir ) /$(devlink )
53+ [ -n " $( soname) " ] && \
54+ rm -f $(DESTDIR )$(PREFIX ) /$(libdir ) /$(soname ) $(DESTDIR )$(PREFIX ) /$(libdir ) /$(devlink ) && \
55+ ln -s $(DESTDIR )$(PREFIX ) /$(libdir ) /$(lib_so ) $(DESTDIR )$(PREFIX ) /$(libdir ) /$(soname ) && \
56+ ln -s $(DESTDIR )$(PREFIX ) /$(libdir ) /$(soname ) $(DESTDIR )$(PREFIX ) /$(libdir ) /$(devlink ) || \
57+ true
4258 for h in $( hdr) ; do cp -p $( srcdir) /$$ h $( DESTDIR) $( PREFIX) /include/; done
4359
4460.PHONY : uninstall
4561uninstall :
4662 rm -f $(DESTDIR )$(PREFIX ) /$(libdir ) /$(lib_a )
4763 rm -f $(DESTDIR )$(PREFIX ) /$(libdir ) /$(lib_so )
48- rm -f $(DESTDIR )$(PREFIX ) /$(libdir ) /$(soname )
49- rm -f $(DESTDIR )$(PREFIX ) /$(libdir ) /$(devlink )
64+ [ -n " $( soname) " ] && \
65+ rm -f $(DESTDIR )$(PREFIX ) /$(libdir ) /$(soname ) $(DESTDIR )$(PREFIX ) /$(libdir ) /$(devlink ) || \
66+ true
5067 for i in $( hdr) ; do rm -f $( DESTDIR) $( PREFIX) /include/$$ i; done
5168
0 commit comments