From fb109a12e10eaf823e441fdee9a882d6ef2ba5c3 Mon Sep 17 00:00:00 2001 From: Memphiz Date: Wed, 8 Jun 2011 00:23:04 +0200 Subject: [PATCH] - honor @cc@,@CLFAGS@ and @LDFLAGS@ which is important for cross compilation - use a more generic regexp for renaming the generated rpc header includes - because the include is without subpath on darwin/ios - make linkerstuff and so names dynamic according to @is_darwin@ - create install directorys if they don't exist - use $(prefix) instead of $(DESTDIR) for installation - build examples only if @ENABLE_EXAMPLES@ is set (default is on) - rm -rf bin on clean because darwin adds directories here on compilation - use u_int64_t for rpcgen on darwin instead of unsigned hyper (it is not known to the darwin rpcgen...) --- Makefile.in | 59 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 22 deletions(-) diff --git a/Makefile.in b/Makefile.in index 06303e6..64f03d8 100644 --- a/Makefile.in +++ b/Makefile.in @@ -3,16 +3,26 @@ exec_prefix = @exec_prefix@ libdir = @libdir@ bindir = @bindir@ LIBS=@LIBS@ - INSTALLCMD = @install@ -c +is_darwin=@is_darwin@ +ENABLE_EXAMPLES=@ENABLE_EXAMPLES@ -CC=gcc -CFLAGS=-g -O0 -fPIC -Wall -W -I. -Iinclude -Imount -Infs -Iportmap -Irquota "-D_U_=__attribute__((unused))" -D_FILE_OFFSET_BITS=64 +CC=@CC@ +CFLAGS=@CFLAGS@ -g -O0 -fPIC -Wall -W -I. -Iinclude -Imount -Infs -Iportmap -Irquota "-D_U_=__attribute__((unused))" -D_FILE_OFFSET_BITS=64 LIBNFS_A=lib/libnfs.a -LIBNFS_SO_NAME=libnfs.so.1 VERSION=1.0.0 -LIBNFS_SO=lib/libnfs.so.$(VERSION) + +ifeq ("$(is_darwin)","yes") + LIBNFS_SO_NAME=libnfs.1.dylib + LIBNFS_SO=lib/libnfs.$(VERSION).dylib + LDFLAGS+=@CFLAGS@ -dynamiclib + RPCGEN_DEF=-DU_INT64_PLATTFORM_TYPE="u_int64_t" +else + LIBNFS_SO_NAME=libnfs.so.1 + LIBNFS_SO=lib/libnfs.so.$(VERSION) + LDFLAGS+=@CFLAGS@ -shared -Wl,-soname=$(LIBNFS_SO_NAME) +endif LIB_OBJS = lib/pdu.o lib/init.o lib/socket.o \ lib/libnfs.o lib/libnfs-sync.o @@ -23,7 +33,9 @@ portmap/libnfs-raw-portmap.o portmap/portmap.o \ nfs/libnfs-raw-nfs.o nfs/nfs.o \ rquota/libnfs-raw-rquota.o rquota/rquota.o -EXAMPLES=bin/nfsclient-raw bin/nfsclient-async bin/nfsclient-sync +ifeq ("$(ENABLE_EXAMPLES)","yes") + EXAMPLES=bin/nfsclient-raw bin/nfsclient-async bin/nfsclient-sync +endif all: $(LIBNFS_SO) $(EXAMPLES) @@ -46,15 +58,15 @@ $(LIBNFS_A): $(LIBNFS_OBJS) $(LIB_OBJS) $(LIBNFS_SO): $(LIBNFS_OBJS) $(LIB_OBJS) @echo Creating shared library $@ - $(CC) -shared -Wl,-soname=$(LIBNFS_SO_NAME) -o $@ $(LIBNFS_OBJS) $(LIB_OBJS) + $(CC) $(LDFLAGS) -o $@ $(LIBNFS_OBJS) $(LIB_OBJS) portmap/libnfs-raw-portmap.h: portmap/portmap.x @echo Generating $@ - rpcgen -h portmap/portmap.x > portmap/libnfs-raw-portmap.h + rpcgen $(RPCGEN_DEF) -h portmap/portmap.x > portmap/libnfs-raw-portmap.h portmap/libnfs-raw-portmap.c: portmap/portmap.x @echo Generating $@ - rpcgen -c portmap/portmap.x | sed -e "s/#include \"portmap\/portmap.h\"/#include \"libnfs-raw-portmap.h\"/" > portmap/libnfs-raw-portmap.c + rpcgen $(RPCGEN_DEF) -c portmap/portmap.x | sed -e "s/#include \".*portmap.h\"/#include \"libnfs-raw-portmap.h\"/" > portmap/libnfs-raw-portmap.c portmap/libnfs-raw-portmap.o: portmap/libnfs-raw-portmap.c portmap/libnfs-raw-portmap.h @echo Compiling $@ @@ -62,11 +74,11 @@ portmap/libnfs-raw-portmap.o: portmap/libnfs-raw-portmap.c portmap/libnfs-raw-po mount/libnfs-raw-mount.h: mount/mount.x @echo Generating $@ - rpcgen -h mount/mount.x > mount/libnfs-raw-mount.h + rpcgen $(RPCGEN_DEF) -h mount/mount.x > mount/libnfs-raw-mount.h mount/libnfs-raw-mount.c: mount/mount.x @echo Generating $@ - rpcgen -c mount/mount.x | sed -e "s/#include \"mount\/mount.h\"/#include \"libnfs-raw-mount.h\"/" > mount/libnfs-raw-mount.c + rpcgen $(RPCGEN_DEF) -c mount/mount.x | sed -e "s/#include \".*mount.h\"/#include \"libnfs-raw-mount.h\"/" > mount/libnfs-raw-mount.c mount/libnfs-raw-mount.o: mount/libnfs-raw-mount.c mount/libnfs-raw-mount.h @echo Compiling $@ @@ -74,11 +86,11 @@ mount/libnfs-raw-mount.o: mount/libnfs-raw-mount.c mount/libnfs-raw-mount.h nfs/libnfs-raw-nfs.h: nfs/nfs.x @echo Generating $@ - rpcgen -h nfs/nfs.x > nfs/libnfs-raw-nfs.h + rpcgen $(RPCGEN_DEF) -h nfs/nfs.x > nfs/libnfs-raw-nfs.h nfs/libnfs-raw-nfs.c: nfs/nfs.x @echo Generating $@ - rpcgen -c nfs/nfs.x | sed -e "s/#include \"nfs\/nfs.h\"/#include \"libnfs-raw-nfs.h\"/" > nfs/libnfs-raw-nfs.c + rpcgen $(RPCGEN_DEF) -c nfs/nfs.x | sed -e "s/#include \".*nfs.h\"/#include \"libnfs-raw-nfs.h\"/" > nfs/libnfs-raw-nfs.c nfs/libnfs-raw-nfs.o: nfs/libnfs-raw-nfs.c nfs/libnfs-raw-nfs.h @echo Compiling $@ @@ -86,11 +98,11 @@ nfs/libnfs-raw-nfs.o: nfs/libnfs-raw-nfs.c nfs/libnfs-raw-nfs.h rquota/libnfs-raw-rquota.h: rquota/rquota.x @echo Generating $@ - rpcgen -h rquota/rquota.x > rquota/libnfs-raw-rquota.h + rpcgen $(RPCGEN_DEF) -h rquota/rquota.x > rquota/libnfs-raw-rquota.h rquota/libnfs-raw-rquota.c: rquota/rquota.x @echo Generating $@ - rpcgen -c rquota/rquota.x | sed -e "s/#include \"rquota\/rquota.h\"/#include \"libnfs-raw-rquota.h\"/" > rquota/libnfs-raw-rquota.c + rpcgen $(RPCGEN_DEF) -c rquota/rquota.x | sed -e "s/#include \".*rquota.h\"/#include \"libnfs-raw-rquota.h\"/" > rquota/libnfs-raw-rquota.c rquota/libnfs-raw-rquota.o: rquota/libnfs-raw-rquota.c rquota/libnfs-raw-rquota.h @echo Compiling $@ @@ -98,25 +110,28 @@ rquota/libnfs-raw-rquota.o: rquota/libnfs-raw-rquota.c rquota/libnfs-raw-rquota. install: $(LIBNFS_A) $(LIBNFS_SO) ifeq ("$(LIBDIR)x","x") + mkdir -p $(libdir) $(INSTALLCMD) -m 755 $(LIBNFS_SO) $(libdir) $(INSTALLCMD) -m 755 $(LIBNFS_A) $(libdir) @ldconfig@ else + mkdir -p $(LIBDIR) $(INSTALLCMD) -m 755 $(LIBISCSI_SO) $(LIBDIR) $(INSTALLCMD) -m 755 $(LIBNFS_A) $(LIBDIR) endif - mkdir -p $(DESTDIR)/usr/include/nfsc - $(INSTALLCMD) -m 644 include/libnfs.h $(DESTDIR)/usr/include/nfsc - $(INSTALLCMD) -m 644 include/libnfs-private.h $(DESTDIR)/usr/include/nfsc - $(INSTALLCMD) -m 644 mount/libnfs-raw-mount.h $(DESTDIR)/usr/include/nfsc - $(INSTALLCMD) -m 644 nfs/libnfs-raw-nfs.h $(DESTDIR)/usr/include/nfsc - $(INSTALLCMD) -m 644 portmap/libnfs-raw-portmap.h $(DESTDIR)/usr/include/nfsc + mkdir -p $(prefix)/include/nfsc + $(INSTALLCMD) -m 644 include/libnfs.h $(prefix)/include/nfsc + $(INSTALLCMD) -m 644 include/libnfs-private.h $(prefix)/include/nfsc + $(INSTALLCMD) -m 644 mount/libnfs-raw-mount.h $(prefix)/include/nfsc + $(INSTALLCMD) -m 644 nfs/libnfs-raw-nfs.h $(prefix)/include/nfsc + $(INSTALLCMD) -m 644 portmap/libnfs-raw-portmap.h $(prefix)/include/nfsc distclean: clean rm -f config.h config.log config.status configure Makefile clean: - rm -f bin/* lib/*.o lib/*.a $(LIBNFS_SO) + rm -rf bin/* + rm -f lib/*.o lib/*.a $(LIBNFS_SO) rm -f mount/*.o mount/libnfs-raw-mount.h mount/libnfs-raw-mount.c rm -f nfs/*.o nfs/libnfs-raw-nfs.h nfs/libnfs-raw-nfs.c rm -f portmap/*.o portmap/libnfs-raw-portmap.h portmap/libnfs-raw-portmap.c -- 2.34.1