[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#317173: [linux-karma-devel] Debian packaging of libkarma



On Tue, Jan 02, 2007 at 02:54:45PM +0000, Joseph Nahmias wrote:
> Happy New Year Everyone!
> 
> I've just completed preliminary packaging of libkarma for Debian
> [http://debian.org/].
> 
> If you've got some time and the inclination, I've made the packages
> available at: http://people.debian.org/~jello/ for anyone to review
> before I upload to the main archive.
> 
> As part of the process, I created incomplete manpages for riocp, chprop,
> and karma_helper.  I would appreciate any help in finishing these up.
> 
> Also, I made some changes to the Makefiles that I would like to discuss
> with Frank mostly relating to the install process.  See the attached
> diff.
> 
> One thing I did not package was the karma-sharp library.  Does anyone
> need/use it?
> 
> Thanks to everyone for bringing the Karma alive in Linux!
> 
> --Joe

Eek!  I forgot the attachment.  Here it is.

--Joe
--- libkarma-0.0.6.orig/Makefile
+++ libkarma-0.0.6/Makefile
@@ -1,6 +1,7 @@
 LK_SRC=src
 TOOLSDIR=tools
 PREFIX=/usr/local
+INSTALL?=./install-sh
 VERSION=0.0.6
 
 export PREFIX
@@ -12,6 +13,12 @@
 	karma-sharp/{Makefile,karma-sharp.pc.in,Song.cs,Device.cs} \
 	Jamfile Makefile COPYING ChangeLog THANKS INSTALL TODO \
 	install-sh karma-tools.spec
+DOCS=THANKS TODO ChangeLog
+
+INSTALL_DIR     := $(INSTALL) -d -o root -g root -m 0755
+INSTALL_FILE    := $(INSTALL)    -o root -g root -m 0644
+INSTALL_PROGRAM := $(INSTALL)    -o root -g root -m 0755 # -s
+INSTALL_SCRIPT  := $(INSTALL)    -o root -g root -m 0755
 
 all: libkarma tools karma-sharp
 
@@ -19,11 +26,14 @@
 	cd $(LK_SRC) && $(MAKE) install
 	cd karma-sharp && $(MAKE) install
 	cd tools && $(MAKE) install
+	$(INSTALL_DIR) $(DESTDIR)$(PREFIX)/share/doc/libkarma
+	$(INSTALL_FILE) $(DOCS) $(DESTDIR)$(PREFIX)/share/doc/libkarma
 
 uninstall: 
 	cd $(LK_SRC) && $(MAKE) uninstall
 	cd karma-sharp && $(MAKE) uninstall
 	cd tools && $(MAKE) uninstall
+	rm -rf $(DESTDIR)$(PREFIX)/share/doc/libkarma
 
 libkarma: FORCE
 	cd $(LK_SRC) && $(MAKE)
--- libkarma-0.0.6.orig/src/Makefile
+++ libkarma-0.0.6/src/Makefile
@@ -8,43 +8,60 @@
 
 LIBDIR=../lib
 
-CC=gcc
-AR=ar
-RANLIB=ranlib
+CC?=gcc
+AR?=ar
+RANLIB?=ranlib
+LN_S?=ln -s
 
 CFLAGS+=-fPIC -D_REENTRANT -Wall -pedantic
 CFLAGS+=-ggdb -W -Wchar-subscripts -Wmissing-prototypes 
 CFLAGS+=-Wmissing-declarations -Wno-switch -Wredundant-decls -Wno-unused
+MAJOR?=$(shell VERSION=${VERSION} echo $${VERSION%%\.*})
 
 default: all
 
-install:
+install: shared-lib-stamp static-lib-stamp
 	../install-sh -m 0755 -d $(PREFIX)/lib
 	../install-sh -m 0755 -d $(PREFIX)/include
 	../install-sh -m 0755 -d $(PREFIX)/include/libkarma
 	../install-sh -m 0644 -t $(PREFIX)/lib/ $(LIBDIR)/$(TARGET).a
-	../install-sh -m 0755 -t $(PREFIX)/lib/ $(LIBDIR)/$(TARGET).so
+	../install-sh -m 0755 -t $(PREFIX)/lib/ $(LIBDIR)/$(TARGET).so.$(VERSION)
+	$(LN_S) $(TARGET).so.$(VERSION) $(PREFIX)/lib/$(TARGET).so.$(MAJOR)
+	$(LN_S) $(TARGET).so.$(VERSION) $(PREFIX)/lib/$(TARGET).so
 	../install-sh -m 0644 -t $(PREFIX)/include/libkarma/ $(INST_HEADERS)
 
 uninstall:
-	$(RM) $(PREFIX)/lib/$(TARGET).a $(PREFIX)/lib/$(TARGET).so*
+	$(RM) $(PREFIX)/lib/$(TARGET).a $(PREFIX)/lib/$(TARGET).so{,.$(MAJOR),.$(VERSION)}
 	$(RM) -r $(PREFIX)/include/libkarma
 
 OBJS = $(SRCS:.c=.o)
 
 $(LIBDIR):
-	@[ -d $(LIBDIR) ] || mkdir $(LIBDIR) > /dev/null 2>&1
+	@[ -d $(LIBDIR) ] || mkdir -p $(LIBDIR) > /dev/null 2>&1
 
-$(TARGET): $(OBJS) $(LIBDIR)
+$(LIBDIR)/$(TARGET).a: $(OBJS) $(LIBDIR)
 	$(AR) r $(LIBDIR)/$(TARGET).a $(OBJS)
 	$(RANLIB) $(LIBDIR)/$(TARGET).a
 
-shared: $(OBJS) $(LIBDIR)
-	$(CC) -shared $(OBJS) $(CFLAGS) -o $(LIBDIR)/$(TARGET).so -ltag_c
 
-all: $(TARGET) shared
+$(LIBDIR)/$(TARGET).so.$(VERSION): $(OBJS) $(LIBDIR)
+	$(CC) -shared -Wl,-soname,$(TARGET).so.$(MAJOR) $(OBJS) $(CFLAGS) -o $(LIBDIR)/$(TARGET).so.$(VERSION) -ltag_c
+
+$(LIBDIR)/$(TARGET).so.$(MAJOR): $(LIBDIR)/$(TARGET).so.$(VERSION) $(LIBDIR)
+	$(LN_S) $(TARGET).so.$(VERSION) $(LIBDIR)/$(TARGET).so.$(MAJOR)
+
+$(LIBDIR)/$(TARGET).so: $(LIBDIR)/$(TARGET).so.$(VERSION) $(LIBDIR)
+	$(LN_S) $(TARGET).so.$(VERSION) $(LIBDIR)/$(TARGET).so
+
+shared-lib-stamp: $(LIBDIR)/$(TARGET).so.$(VERSION) $(LIBDIR)/$(TARGET).so.$(MAJOR) $(LIBDIR)/$(TARGET).so
+	touch $@
+
+static-lib-stamp: $(LIBDIR)/$(TARGET).a
+	touch $@
+
+all: static-lib-stamp shared-lib-stamp
 
 .PHONY: clean
 
 clean:
-	rm -rf $(OBJS) $(LIBDIR)/ 
+	rm -rf $(OBJS) $(LIBDIR)/ static-lib-stamp shared-lib-stamp
--- libkarma-0.0.6.orig/tools/Makefile
+++ libkarma-0.0.6/tools/Makefile
@@ -1,27 +1,28 @@
 INCLUDES=-I../src
 LIBDIR=../lib
-LIBKARMA=$(LIBDIR)/libkarma.a
+LIBKARMA=$(LIBDIR)/libkarma.so
 
 SRCS=pathedit.c
 
 CC=gcc
 CFLAGS+=-Wall -pedantic
-LDFLAGS+=-ltag_c -lz
+LDFLAGS+=-ltag_c -lz -L $(LIBDIR)
 
 OBJS=$(SRCS:.c=.o)
-TOOLS=riocp chprop playlist_show karma_helper
+TOOLS=riocp chprop karma_helper
+MANPAGES=riocp.1 chprop.1 karma_helper.1
 
 default: $(TOOLS)
 all: $(TOOLS)
 
 riocp: riocp.c $(OBJS) $(LIBKARMA)
-	$(CC) $(INCLUDES) $(LDFLAGS) $(CFLAGS) $@.c -o $@ $(OBJS) $(LIBKARMA)
+	$(CC) $(INCLUDES) $(LDFLAGS) $(CFLAGS) $@.c -o $@ $(OBJS) -lkarma
 
 chprop: chprop.c $(LIBKARMA)
-	$(CC) $(INCLUDES) $(LDFLAGS) $(CFLAGS) $@.c -o $@ $(LIBKARMA)
+	$(CC) $(INCLUDES) $(LDFLAGS) $(CFLAGS) $@.c -o $@ -lkarma
 
 playlist_show: playlist_show.c $(LIBKARMA)
-	$(CC) $(INCLUDES) $(LDFLAGS) $(CFLAGS) $@.c -o $@ $(LIBKARMA)
+	$(CC) $(INCLUDES) $(LDFLAGS) $(CFLAGS) $@.c -o $@ -lkarma
 
 karma_helper: karma_helper.c
 	$(CC) $(INCLUDES) $(CFLAGS) $@.c -o $@ -lusb
@@ -29,6 +30,8 @@
 install:
 	../install-sh -m 0755 -d $(PREFIX)/bin
 	../install-sh -m 0755 -t $(PREFIX)/bin/ $(TOOLS)
+	../install-sh -m 0755 -d $(PREFIX)/share/man/man1
+	../install-sh -m 0755 -t $(PREFIX)/share/man/man1 $(MANPAGES)
 
 uninstall:
 	cd $(PREFIX)/bin && $(RM) $(TOOLS)

Reply to: