deb erstellen

Dein Thema passt einfach in kein Forum? Dann probiers mal hier.
Antworten
central
Beiträge: 14
Registriert: 1. Juli 2005 02:00
Wohnort: Hamburg
Kontaktdaten:

deb erstellen

Beitrag von central »

Hallo ich verzweifel langsam ,
entweder bin ich zu blöde oder die anderen zu schlau :)
Also fangen wir mal an .
Ich hab mein kleines Programm fertig und würde es nun gerne als deb anbieten.
Das hier ist auch genau mein problem
the application i'm packaging uses qmake to generate the Makefile. But qmake uses its own DESTDIR variable (which points to where the binary
target should go), so it conflicts with DESTDIR used by
dpkg-buildpackage.
und hier die vermeintliche Lösung
in the .pro file:
!mac:unix:BIN_DIR = $(DEBIAN_DESTDIR)/usr/bin
!mac:unix:DATA_DIR = $(DEBIAN_DESTDIR)/usr/share/packagename

in debian rules:
$(MAKE) install DEBIAN_DESTDIR=$(CURDIR)/debian/packagename
nur leider ist es nicht so einfach
hier mein erstes Makefile

Code: Alles auswählen

MAKEFILE =	Makefile
QMAKE    =	qmake
DEL_FILE =    rm -f
CHK_DIR_EXISTS= test -d
MKDIR    = mkdir -p
INSTALL_FILE= 
INSTALL_DIR = 
SUBTARGETS =	 \
		sub-src

first: all

all: Makefile $(SUBTARGETS)

src/$(MAKEFILE): 
	@$(CHK_DIR_EXISTS) "src" || $(MKDIR) "src"
	cd src && $(QMAKE) src.pro -o $(MAKEFILE)
sub-src: src/$(MAKEFILE) FORCE
	cd src && $(MAKE) -f $(MAKEFILE)

Makefile: corebpush.pro  /usr/share/qt3/mkspecs/default/qmake.conf 
	$(QMAKE) -o Makefile corebpush.pro
qmake: qmake_all
	@$(QMAKE) -o Makefile corebpush.pro

all: $(SUBTARGETS)
qmake_all: src/$(MAKEFILE)
	 ( [ -d src ] && cd src ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
clean uicables mocables uiclean mocclean lexclean yaccclean : qmake_all FORCE
	 ( [ -d src ] && cd src ; $(MAKE) -f $(MAKEFILE) $@; ) || true
uninstall_subdirs: qmake_all FORCE
	 ( [ -d src ] && cd src ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
install_subdirs: qmake_all FORCE
	 ( [ -d src ] && cd src ; $(MAKE) -f $(MAKEFILE) install; ) || true
distclean: qmake_all FORCE
	 ( [ -d src ] && cd src ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true

install:  install_subdirs

uninstall:  uninstall_subdirs

FORCE:
wie man sehen kann wird dort nochmal in src
ein Makefile generiert aus der src.pro
und die sieht so aus

Code: Alles auswählen

FORMS += corebpushWDG.ui \
         dirnameDLG.ui 
HEADERS += corebpushwdg.h \
           corebpushWDG.ui.h \
           dirnamedlg.h \
           myimage.h 
SOURCES += corebpushwdg.cpp \
           dirnamedlg.cpp \
           main.cpp 
TARGET=/usr/bin/corebpush
wenn ich im Target reinschreibe $(DEBIAN_DESTDIR)
hat das leider nicht den gewünschten erfolg

Benutze dh_make und dpkg-buildpackage

Ich hoffe das mir da jemand helfen kann ,denn ich versuche seit zwei Tagen nichts anderes

mit der hoffnung auf zahlreichen Antworten :)

gruß
central
no trouble
no fun
ChMaster
Beiträge: 252
Registriert: 23. Februar 2005 14:44
Wohnort: RP -> Alzey
Kontaktdaten:

Beitrag von ChMaster »

servus,

leichter als das, du wirst es kaum glauben, aber dies ist so einfach.
so nun kommen wir dazu dir dies mit zu teilen, da ich etwas schreib-
faul bin hier der link zum erstellen eines Debian Packages ohne den
schmonzens von automake/autoconf
ChMaster
------------ Projekte------------
DBoxFE
DMS
First4 (Plugin-Develper)
central
Beiträge: 14
Registriert: 1. Juli 2005 02:00
Wohnort: Hamburg
Kontaktdaten:

Beitrag von central »

OK danke,
das wußte ich vorher schon und war auch nicht mein Ziel sorry wenn ich mich da ein wenig schlecht ausgedrückt habe.
Ich wollte nach der Methode aus dem new-maintainers-guide vorgehen.
Also mit dh_make und dpkg-buildpackage :)
So hier die Lösung.
Ich verzichte auf das erste Makefile was ja eigentlich nur das Zweite aufruft.
gehe in meinen Source Ordner und öffne mein pro file und ändere das TARGET zu $(DEB_DESTDIR)/usr/bin/meineanwendung .
Führe dann qmake aus was mir dann ein Makefile generiert.
In dem Makefile ändere ich nun ganz unten bei install (wo nichts steht) zu
install: $(TARGET) $(DEB_DESTDIR)
dann führe ich dh_make aus nicht im übergeordneten Verzeichniss !
gehe in den Ordner debian und passe die files meinen gegebenheiten an.
nun ändere ich die rules datei .
und kommentiere dieses hier aus

Code: Alles auswählen

# Add here commands to compile the package.
	#$(MAKE)
	#docbook-to-man debian/corebpush.sgml > corebpush.1
 
das sonst mein source kompiliert wird und somit make install fehlschlägt.
dann ändere ich noch das install ziel zu

Code: Alles auswählen

# Add here commands to install the package into debian/meinprogramm
	$(MAKE) install DEB_DESTDIR=$(CURDIR)/debian/meinprogramm

Code: Alles auswählen

dann  cd ..
dpkg-buildpackage -rfakeroot
thats it

hoffe es kann jemanden helfen

gruß

central
no trouble
no fun
Antworten