Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Author Message
brummerOffline
Post subject: make deb  PostPosted: 16.12.2011, 10:54



Joined: 20.09.2010
Posts: 232
Location: Rehburg
Status: Offline
Moin

Für mein letztes Projekt wollte ich den Usern die Möglichkeit geben selbst einfach ein debian Paket aus den Quelle zu bauen, dafür habe ich einen MACRO im Makefile entwickelt.

Zunächst mal die Deklarationen (üblicherweise am Anfang des Makefiles) :

Die Installationspfade sind meistens schon so (oder ähnlich) deklariert
      Code:
   PREFIX = /usr
   BIN_DIR = $(PREFIX)/bin
   SHARE_DIR = $(PREFIX)/share
   DESKAPPS_DIR = $(SHARE_DIR)/applications
   PIXMAPS_DIR = $(SHARE_DIR)/pixmaps


Wir definieren noch folgende MACROS dazu:
      Code:
   CREATEDEB = yes '' | dh_make -s -n -e $(USER)@org -c gpl -i >/dev/null
   DIRS = $(BIN_DIR)  $(DESKAPPS_DIR)  $(PIXMAPS_DIR)
   BUILDDEB = dpkg-buildpackage -rfakeroot -b 2>/dev/null | grep dpkg-deb


CREATEDEB erzeugt mit hilfe von dh_make den debian ordner
DIRS enthält die Installationspfade
BUILDDEB baut das debian Paket.

nun müssen wir schauen ob im Abschnitt install :
die variable $(DESTDIR) verwendet wird, falls nicht, müssen wir sie dazu fügen. install sollte dann so (oder ähnlich) aussehen:

      Code:
install :
   install name $(DESTDIR)$(BIN_DIR)
   install name.desktop $(DESTDIR)$(DESKAPPS_DIR)
   install name.png $(DESTDIR)$(PIXMAPS_DIR)


nun können wir user build MACRO einfügen, irgendwo, aber nicht als erstes MACRO.

      Code:
deb :
   @rm -rf ./debian
   @echo "create ./debian"
   -@ $(CREATEDEB)
   @echo "touch ./debian/dirs
   -@echo $(DIRS) > ./debian/dirs
   @echo "try to build debian package, that may take some time"
   -@ if $(BUILDDEB); then echo ". ., done"; else \
     echo "sorry, build fail"; fi
   @rm -rf ./debian


wenn man nun im source Verzeichnis "make deb" eingibt, wird das debian Paket gebaut, wenn alles gut geht.
Das CREATEDEB MACRO ist für single binarys ausgelegt, für Bibliotheken oder multi binarys müsste es entsprechend angepasst werden. siehe man dh_make

viel Spaß
 
 View user's profile Send private message Visit poster's website  
Reply with quote Back to top
Display posts from previous:     
Jump to:  
All times are GMT - 11 Hours
Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Powered by Zafenio