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: